【问题标题】:Is there any way to specify the encoding used in SpreadsheetGear to generate CSV files?有没有办法指定 SpreadsheetGear 中使用的编码来生成 CSV 文件?
【发布时间】: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


    【解决方案1】:

    SpreadsheetGear 不提供指定 CSV 文件编码的选项,或指定用于给定基于文本的数据文件的分隔符的选项。如果您有一个用 UTF 编码的 CSV,则需要构建自己的例程来相应地读取和处理此文件,然后手动将该数据逐个单元格地插入到您的工作表中。

    【讨论】:

    • 我怀疑是这种情况(但希望不是)感谢您的澄清。如果将来会支持 UTF-8 CSV 文件格式,有什么想法吗?
    • 我们确实会接受这样的请求(我为 SpreadsheetGear 工作),但我无法提供任何时间表来说明何时实施此特定功能。欢迎您通过 support@spreadsheetgear.com 与我们联系并提供此功能请求项目,以便我将您添加到列表中。这样一来,如果/当我们执行此操作时,我们一定会通知您。
    猜你喜欢
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 2020-12-16
    • 2021-09-23
    相关资源
    最近更新 更多