c#CSVHelper读取带有可变标题的CSV

时间:2015-03-15 16:45:25

标签: c# winforms csv csvhelper

首次使用csvReader - 请注意,它需要一个自定义类来定义CSV文件中的标题。

class DataRecord
{
    //Should have properties which correspond to the Column Names in the file 
    public String Amount { get; set; }
    public String InvoiceDate { get; set; }......
}

然后给出的例子使用如下类: -

            using (var sr = new StreamReader(@"C:\\Data\\Invoices.csv"))
        {
            var reader = new CsvReader(sr);

            //CSVReader will now read the whole file into an enumerable
            IEnumerable<DataRecord> records = reader.GetRecords<DataRecord>();

            //First 5 records in CSV file will be printed to the Output Window
            foreach (DataRecord record in records.Take(5)) 
            {
                Debug.Print("{0} {1}, {2}", record.Amount, record.InvoiceDate, ....);
            }

两个问题: - 1.该应用程序将加载到具有不同标题的文件中,因此我需要能够即时更新此类 - 这是否可行&amp;怎么样?  (我可以从CSV文件中提取标题。)

  1. CSV文件可能有数百万行(gb大小),因此这是导入文件的最佳/最有效方式。
  2. 目的地是一个SQLite数据库 - 以调试行为例。

    由于

1 个答案:

答案 0 :(得分:0)

  
      
  1. 应用程序将加载到具有不同标题的文件中,因此我需要能够动态更新此类 - 这是否可行&amp;如何?
  2.   

虽然可以通过reflecion或第三方库来定义,但为这样一个大文件创建一行对象效率不高。此外,在这种情况下使用C#是个坏主意(除非你有一些业务数据转换)。我会考虑类似this或SSIS包的内容。