C# C未能从Excel电子表格导入所有单元格
我使用一些遗留代码将Excel工作表作为数据集返回。然而,当我迭代得到的数据集时,似乎不是所有的单元格都在那里。正在阅读的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
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;";