Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C未能从Excel电子表格导入所有单元格_C#_Asp.net_Import From Excel - Fatal编程技术网

C# C未能从Excel电子表格导入所有单元格

C# C未能从Excel电子表格导入所有单元格,c#,asp.net,import-from-excel,C#,Asp.net,Import From Excel,我使用一些遗留代码将Excel工作表作为数据集返回。然而,当我迭代得到的数据集时,似乎不是所有的单元格都在那里。正在阅读的Excel表格有一些合并的单元格,我想知道这是否是问题所在。代码如下: private DataSet Get_Spreadsheet_Data(string strFileName, string strSheetName) { DataSet ds = new DataSet(); string strConnectionString = "Provide

我使用一些遗留代码将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;
}

这个代码有故障吗?非常感谢您的建议。

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

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

第一行:值为'Foo'的单元格A1;B1单元为“条形”,C1单元为香蕉。 第二行:单元格A2 Foo1 B2 Bar1 需要阅读:

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

这就成功了

所示代码中的引号不正确。excel8.0;HDR=否;IMEX=1是扩展属性的值,需要在字符串中用引号括起来。
string strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strFileName + ";" + "Extended Properties="Excel 8.0;HDR=NO;IMEX=1;";