0

使用FileHelpers.CsvEngine.DataTableToCsv. 我无法BeforeWriteRecord像以前那样挂钩 "" 事件FileHelperEngine。是否有可能在 CSVEngine 类中挂钩操作。

4

1 回答 1

0

该类CSVEngine当前(版本 2.9.9)不支持该BeforeWriteRecord事件。我认为原因是BeforeWriteRecordEventArgs期望 FileHelpers 记录类在从DataTable.

的代码DataTableToCsv是一个简单的静态方法,因此很容易提供您自己的替换。代码在这里并引用如下:

    public static void DataTableToCsv(DataTable dt, string filename, CsvOptions options)
    {
        using (var fs = new StreamWriter(filename, false, options.Encoding, EngineBase.DefaultWriteBufferSize))
        {
            foreach (DataRow dr in dt.Rows)
            {
                object[] fields = dr.ItemArray;
                for (int i = 0; i < fields.Length; i++)
                {
                    if (i > 0)
                        fs.Write(options.Delimiter);
                    fs.Write(options.ValueToString(fields[i]));
                }
                fs.Write(StringHelper.NewLine);
            }
            fs.Close();
        }
    }
于 2012-02-22T09:35:31.843 回答