将Excel数据导入C#,而第一行不会成为列名?

时间:2010-12-14 02:05:00

标签: c# excel datatable ole

我正在尝试使用c#将数据从excel导入数据表。这是我用来做的代码......

string ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                    "Data Source=" + fileName + "; Jet OLEDB:Engine Type=5;" +
                    "Extended Properties=\"Excel 8.0;HRD=No;IMEX=1;\"";
OleDbDataAdapter SheetAdapter = new OleDbDataAdapter("select * from ["Sheet1"]", conn);
System.Data.DataTable excelData = new System.Data.DataTable();
SheetAdapter.Fill(excelData);
excelData.TableName = "excelData";

foreach (DataRow row in excelData.Rows)
{
   ProcessDataRow(row);
}

当我查看数据表时,调试第一行数据已成为表列名。当我将HDR = No放入连接字符串时,我不明白为什么会发生这种情况。有没有办法强制DataTable不将第一行作为列名?

2 个答案:

答案 0 :(得分:5)

您提供的代码示例包含HRD=No而不是HDR=No

答案 1 :(得分:0)

我将NPOI library用于您所询问的任务以及更多内容。唯一的限制是它还无法处理Excel 2007格式,因此您只能使用97-2003格式。