Запись csv файла в asp.net
Я пытаюсь экспортировать данные в csv-файл, так как в данных есть китайские символы, которые я должен был использовать unicode.. но после добавления преамбулы для unicode запятые не распознаются как разделители, и все данные теперь записываются в первый столбец. Я не знаю, что случилось. Ниже приведен мой код, который я написал в a .файл ashx.
DataView priceQuery = (DataView)context.Session["priceQuery"];
String fundName = priceQuery.Table.Rows[0][0].ToString().Trim().Replace(' ', '_');
context.Response.Clear();
context.Response.ClearContent();
context.Response.ClearHeaders();
context.Response.ContentType = "text/csv";
context.Response.ContentEncoding = System.Text.Encoding.Unicode;
context.Response.AddHeader("Content-Disposition", "attachment; filename=" + fundName + ".csv");
context.Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble());
String output = fundName + "n";
output += "Price, Date" + "n";
foreach (DataRow row in priceQuery.Table.Rows)
{
string price = row[2].ToString();
string date = ((DateTime)row[1]).ToString("dd-MMM-yy");
output += price + "," + date + "n";
}
context.Response.Write(output);
1 ответ:
Похоже, MS Office не поддерживает файлы CSV в формате Unicode.
Но Некоторые пользователи сообщили, что разделитель табуляции работает.
Я бы попробовал UTF-8 вместо Unicode, это может привести к тому, что разделители будут рассматриваться как символы ASCII.