我正在DataTable
中读CSV
。每当csv
中没有给出列名时,它就会以F1,F2,F3的形式出现。我已经处理好了,应用程序运行良好,直到客户给了我另一个相同格式的csv
并且失败了。我为客户端csv
调试了我的应用程序,发现未命名的列是 comong as .无名,。无名1,。无名2...
如何使两个文件的列都是唯一的。
我已经阅读了以下文件
public static DataTable ImportCsvFile(string filename)
{
DataTable dtExcelData = new DataTable();
FileInfo file = new FileInfo(filename);
using (OleDbConnection con =
new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="" +
file.DirectoryName + "";Extended Properties='text;HDR=Yes;FMT=Delimited(,)';"))
{
using (OleDbCommand cmd = new OleDbCommand(string.Format
("SELECT * FROM [{0}]", file.Name), con))
{
con.Open();
using (OleDbDataAdapter adp = new OleDbDataAdapter(cmd))
{
adp.Fill(dtExcelData);
}
}
}
return dtExcelData;
}
谢谢
由于列名称可能会更改,因此您可以将它们重命名为始终为 F1、F2、...在返回 dataTable 之前将此代码添加到方法中:
for (int i = 0; i < dtExcelData.Columns.Count; i++)
{
dtExcelData.Columns[i].ColumnName = "F" + i.ToString();
}