【发布时间】:2015-05-26 13:27:17
【问题描述】:
我正在尝试使用 Spreadsheet Gear 将包含 Unicode 字符的数据从我们的系统导出为 csv 格式。 (适合 excel)。
但是由于 CSV 格式不是 UTF-8 编码的,所有的 Unicode 字符都被导出为???
我知道 Spreadsheet Gear 通过具有制表符分隔的 UTF-8 文本文件来支持 Unicode,但是我们需要逗号分隔的文件。
这是当前存在的(包括我检查 Unicode 文本文件格式是否正确导出字符):
public static void ExportToStream(Stream stream, IDataSource data, IEnumerable<ColumnInfo> columns, ExportFormat format)
{
var exporter = new ExportCreator
{
Data = data,
Columns = columns.ToArray(),
EscapeFormulas = format == ExportFormat.Xlsx
};
var workbook = exporter.GetWorkBookForExport();
switch (format)
{
//need to put something in here to enable the csv to be encoded as utf-8 -
//currently spreadsheet gear only supports utf-8 encoded tab delimited text file
case ExportFormat.Csv:
workbook.SaveToStream(stream, FileFormat.UnicodeText);
break;
case ExportFormat.Xlsx:
workbook.SaveToStream(stream, FileFormat.OpenXMLWorkbook);
break;
}
}
据我从 Spreadsheet Gear 文档和 SO 中得知,UnicodeText 格式可以解决问题,但不符合我们对 CSV 文件格式的要求。
有没有办法指定流的编码,以便将 CSV 文件格式保存为 UTF-8 编码?
【问题讨论】:
标签: c# csv unicode utf-8 spreadsheetgear