使用c#.net阅读Excel问题
我使用C#从Excel表格读取数据。
这是我的代码,它正在工作。
var fileName = @"C:\Users\yohan\Desktop\Brandix\y.xlsx"; var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; data source= {0}; Extended Properties=Excel 12.0;", fileName); var adapter = new OleDbDataAdapter("SELECT * FROM [BOM$]", connectionString); var ds = new DataSet(); adapter.Fill(ds); DataTable data = ds.Tables[0];
但它总是跳过Excel表格的第一行,为什么呢? 请帮忙 …!!
谢谢你,哟
这是DataAdapter的正常行为。 顶行被视为标题行或“列名”行。
要更改此行为,请将连接string的扩展属性添加到属性“ HDR = NO ”
例:
var fileName = @"C:\Users\yohan\Desktop\Brandix\y.xlsx"; var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; data source={0}; Extended Properties=""Excel 12.0;HDR=NO;""", fileName); var adapter = new OleDbDataAdapter("SELECT * FROM [BOM$]", connectionString); var ds = new DataSet(); adapter.Fill(ds); DataTable data = ds.Tables[0];
尝试将HDR = NO添加到扩展属性。
详细信息请参阅此链接
尝试更改您的连接string…
"Provider=Microsoft.ACE.OLEDB.12.0; data source={0}; Extended Properties=\"Excel 12.0;HDR:No\""
看到这个页面可以尝试更多可能的连接string。 HDR设置决定提供者认为最上面一行是列名。
在服务器端应用程序中读取Excel文件的推荐方法是Open XML。
您可以尝试安装ACE组件,但仍保持不推荐和不受支持的状态。
对于使用Open XML,您可以通过下面的链接来帮助您在代码中使用Open XML读取excel文件 –
链接1
LINK2
链接3