C# 无法从 Excel 电子表格导入所有单元格

本文关键字:导入 单元格 电子表格 Excel | 更新日期: 2023-09-27 18:37:09

我正在使用一些遗留代码将Excel工作表作为数据集返回。 但是,当我迭代生成的数据集时,似乎并非所有单元格都在那里。 正在读取的Excel工作表有一些合并的单元格,我想知道这是否是问题所在。 这是代码:

private DataSet Get_Spreadsheet_Data(string strFileName, string strSheetName)
{
    DataSet ds = new DataSet();
    string strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strFileName + ";" + "Extended Properties=Excel 8.0;";
    OleDbConnection objConn = new OleDbConnection(strConnectionString);
    try
    {
        objConn.Open();
        OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [" + strSheetName + "$]", objConn);
        OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
        objAdapter1.SelectCommand = objCmdSelect;
        objAdapter1.Fill(ds);
    }
    catch (Exception Ex)
    {
        //litOutput.Text = "<span style='"color:red;'">Exception Occurred pulling data from the spreadsheet.</span><br>Details: " + Ex.Message;
    }
    finally
    {
        objConn.Close();
        objConn.Dispose();
    }
    return ds;
}

此代码是否出现故障? 任何建议不胜感激。

C# 无法从 Excel 电子表格导入所有单元格

string strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strFileName + ";" + "Extended Properties=Excel 8.0;";

需要阅读:

string strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strFileName + ";" + "Extended Properties="Excel 8.0;HDR=NO;IMEX=1;";

这就成功了!

您是否尝试过使用没有合并文件的 Excel 文件运行相同的代码?如果我想知道合并的单元格是否会导致填充数据集的问题,这是我尝试的第一件事......

编辑澄清:出于调试目的:使用相同的 Excel 文件,仅确保撤消单元格的合并。更好的是从包含 3 行和 3 列的 excel 文件开始:

第一行:单元格 A1,值为"Foo;单元格 B1 "条",C1 香蕉。第二行:单元格 A2 Foo1 B2 Bar1 <-- 合并这两个单元格。C2 = 苹果。第三行:单元格 A3,值为"Foo2;单元格 B3 'Bar2' C3 橙色 <-- 检查使用合并单元格后下一行是否读清楚...