【问题标题】:How to remove the column name on the first row of a csv file, when you export from a datatable?从数据表导出时,如何删除 csv 文件第一行的列名?
【发布时间】:2015-04-15 18:10:44
【问题描述】:

我有一个 datatable 可以成功导出到 csv 文件中。

事情是这样的

StringBuilder sb = new StringBuilder();
IEnumerable<string> columnNames = tabelaSISH1.Columns.Cast<DataColumn>().
                             Select(column => column.ColumnName);                    
sb.AppendLine(string.Join(";", columnNames));
foreach (DataRow row in tabelaSISH1.Rows)
{
    IEnumerable<string> fields = row.ItemArray.Select(field => field.ToString());
    sb.AppendLine(string.Join(";", fields));
}

File.WriteAllText(xmlDialog1.FileName, sb.ToString()); 

但问题是 csv 文件的第一行始终是列名。我不想要那个。

我希望删除带有列名的行,但显然所发生的只是删除了数据表的第一行,而不是列名。

 tabelaSISH1.Rows.RemoveAt(0);

它失败了。

for (int row = 1; row < tabelaSISH1.Rows.Count; row++)
{
    IEnumerable<string> fields = tabelaSISH1.Rows[row].ItemArray.Select(field => field.ToString());
    sb.AppendLine(string.Join(";", fields));
} 

它又失败了,都删除了数据表的第一行,但没有删除 csv 文件上的列名。

提示?

【问题讨论】:

    标签: c# datatable export-to-csv


    【解决方案1】:

    您明确获取列名并将它们写入StringBuilder,然后用于将 CSV 文件写入磁盘。

    只需删除这两行:

    IEnumerable<string> columnNames =
        tabelaSISH1.Columns.Cast<DataColumn>().Select(column => column.ColumnName);
    
    sb.AppendLine(string.Join(";", columnNames));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-30
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多