1

我正在使用 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;\"";
4

0 回答 0