从数据表导出时,如何删除 csv 文件第一行的列名?

How to remove the column name on the first row of a csv file, when you export from a datatable?

我有一个 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 文件的第一行始终是列名。我不要那个。

我希望删除带有列名的行,但是,显然所有发生的事情都是删除数据的第一行 table,而不是列名。

 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));
} 

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

提示?

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

只需删除这两行:

IEnumerable<string> columnNames =
    tabelaSISH1.Columns.Cast<DataColumn>().Select(column => column.ColumnName);

sb.AppendLine(string.Join(";", columnNames));