我正在使用 OLE 相关的 API 将数据读取到 DataSet,然后在 DataGridView 中查看。源是一个excel文件。如果第一行或第一列为空,则跳过该行或列。我希望读取数据而不考虑空/有数据。其他行/列即使是空的也可以正常工作,但只缺少开始。
我阅读了 ColumnHeader 并尝试更改 connectionString (HDR=NO) 和其他内容,但没有任何结果。
调用 API 时需要指定任何其他内容吗?由于跳过了此初始空白行/列,缺少与 excel 列和 DataGridView 列的一对一映射。
需要向此 OleDbDataAdapter 参数添加/修改任何内容,该参数实际上读取数据并填充到数据集:
OleDbDataAdapter cmd = new System.Data.OleDb.OleDbDataAdapter(
"select * from [" + worksheetName + "$]", con);
是的,我正在设置一些必需的信息并调用一个方法来从每张纸上读取数据。除了阅读它们之外,我没有对行/列执行任何操作。
OleDbConnection con = new System.Data.OleDb.OleDbConnection(connectionString);
System.Data.DataTable getWorksheetData(OleDbConnection con, OleDbDataAdapter cmd)
{
con.Open();
System.Data.DataSet excelDataSet = new DataSet();
cmd.Fill(excelDataSet);
con.Close();
return excelDataSet.Tables[0];
}
我的连接字符串是:
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
fileName + "; Extended Properties=\"Excel 12.0 Xml;HDR=NO;Mode=Read;ReadOnly=True;\"";