我正在使用OledbConnection和OledbDataAdapter类将excel文件导入数据表 . excel工作表的前两行合并为空,列 Headers 从第三行开始 . 我从第3行开始填充了492行,即492 - 2行= 489(列 Headers 为1行)= 490行 . 问题是,当我调试代码时,我只获得了478个填充行,并且所有excel内容都没有导入到数据表中 .
我的代码:
//Upload and save the file
string fileName = Path.GetFileName(excelPath.PostedFile.FileName);
string fileLocation = Server.MapPath("~/App_Data/" + fileName);
excelPath.SaveAs(fileLocation);
string conString = string.Empty;
string extension = Path.GetExtension(excelPath.PostedFile.FileName);
switch (extension)
{
case ".xls": //Excel 97-03
conString = ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString;
break;
case ".xlsx": //Excel 07 or higher
conString = ConfigurationManager.ConnectionStrings["Excel07+ConString"].ConnectionString;
break;
}
conString = string.Format(conString, fileLocation);
using (OleDbConnection excel_con = new OleDbConnection(conString))
{
excel_con.Open();
string sheet1 = excel_con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null).Rows[0]["TABLE_NAME"].ToString();
DataTable dtExcelData = new DataTable();
using (OleDbDataAdapter oda = new OleDbDataAdapter("SELECT [ID],[Title],[Name],[Post],[Tests],[State] FROM [" + sheet1 + "]", excel_con))
{
oda.Fill(dtExcelData);
}
excel_con.Close();
}
可能出了什么问题?
1 回答
在创建将数据从Excel移动到SQL数据库的应用程序时,我最近遇到了同样的问题 .
我通过删除工作表顶部的合并行/列来解决我的问题 . 我怀疑读者会查找每一行以获得您在查询中请求的格式,这会导致错误 .