我正在CSV
阅读DataTable
。每当csv
中没有给出列名时,它就会变成F1,F2,F3 ........我已经处理好了,应用程序运行正常,直到客户端给了我另一个csv
相同的格式,它失败了。我为客户端csv
调试了我的应用程序,发现未命名的列为.NoName,.NoName1,.NoName2 ......
如何使列对两个文件都是唯一的。
我已阅读如下文件
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;
}
由于
答案 0 :(得分:0)
由于列名可能会发生变化,您可以将它们重命名为F1,F2,... Fn。在返回dataTable之前将此代码添加到方法中:
for (int i = 0; i < dtExcelData.Columns.Count; i++)
{
dtExcelData.Columns[i].ColumnName = "F" + i.ToString();
}