我正在尝试使用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不将第一行作为列名?
答案 0 :(得分:5)
您提供的代码示例包含HRD=No
而不是HDR=No
答案 1 :(得分:0)
我将NPOI library用于您所询问的任务以及更多内容。唯一的限制是它还无法处理Excel 2007格式,因此您只能使用97-2003格式。