【发布时间】:2017-11-05 14:48:03
【问题描述】:
我有这样的代码用于读取 Excel 文件:
string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" +
"数据源="+路径+";扩展属性=\"Excel 12.0;HDR=YES\";";
使用 (OleDbConnection conn = new OleDbConnection(connStr))
{
conn.Open();
DataTable dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
字符串 sheetName = dtSchema.Rows[0].Field("TABLE_NAME");
OleDbDataAdapter sheetAdapter = new OleDbDataAdapter("select * from [" + sheetName + "]", conn);
sheetAdapter.Fill(sheetData);
DataTable dtColumns = conn.GetSchema("Columns", new string[] { null, null, sheetName, null });
...
}
我的代码需要使用/查看列标题。以上仅在列标题是第一行时才有效。有时,我们从客户那里收到的 Excel 文件在列标题上方有几行,其中包含一些关于 Excel 中数据的元数据。发生这种情况时,列标题将位于第 10 行。
我可以打开 Excel 文件并手动删除列标题上方的多余行,这解决了问题。但我们想删除这个手动步骤。
是否有任何简单的方法可以删除/忽略列标题上方的这些额外的起始行?还是我必须想出自定义代码?我能想到的最好方法是关闭HDR,然后每列中具有值的第一行就是列标题行。有没有更简单的方法?
【问题讨论】:
标签: c# excel row oledbconnection