在 Asp.Net 中读取 CSV 文件时解析列名



我正在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();
}

相关内容

  • 没有找到相关文章

最新更新