问题描述
|
我有一个使用C#读取的xls文件,并将信息填充到数据表中。我正在使用的代码是:
public static DataTable GetExcelData(string excelFilePath)
{
OleDbConnection objConn = null;
string oledbConnectionString = \"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\" + excelFilePath + \";Extended Properties=Excel 10.0;\";
objConn = new OleDbConnection(oledbConnectionString);
if (objConn.State == ConnectionState.Closed)
{
objConn.Open();
}
var objCmdSelect = new OleDbCommand(\"Select * from [Sheet1$]\",objConn);
var objAdapter = new OleDbDataAdapter();
objAdapter.SelectCommand = objCmdSelect;
var objDataset = new DataSet();
objAdapter.Fill(objDataset,\"ExcelDataTable\");
objConn.Close();
return objDataset.Tables[0];
}
填充此数据表后,我需要删除包含标题信息的前5个左右行,并遍历该数据表以填充访问数据库表。我对这种建议或其他任何10,000种建议都不满意。有人有任何信息可以帮助我吗?我正在运行VS2010 .net 4.0框架。任何和所有帮助将不胜感激。
谢谢,
约翰
解决方法
尝试使用OLEDB将Excel数据导入DataTable时遇到了很多麻烦。我最终通过切换到使用Excel Interop的解决方案解决了该问题。请参阅此答案以获取更多说明和示例代码:
从Excel导入:某些单元格为空