我使用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表的顶行为什么呢? 请帮忙...... !!
谢谢 YOHAN
答案 0 :(得分:3)
这是DataAdapter的正常行为。顶行被视为标题行或“列名称”行。
要更改此行为,请在连接字符串的扩展属性中添加属性“ HDR =否”
示例:
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];
答案 1 :(得分:1)
尝试将连接字符串更改为...
"Provider=Microsoft.ACE.OLEDB.12.0; data source={0}; Extended Properties=\"Excel 12.0;HDR:No\""
有关更多可能的连接字符串,请参阅this page。 HDR设置确定提供程序将顶行视为列名。
答案 2 :(得分:1)
尝试将HDR = NO添加到扩展属性。
有关详细信息,请参阅此link
答案 3 :(得分:0)