【发布时间】:2016-03-09 07:03:59
【问题描述】:
我正在使用 OledbConnection 和 OledbDataAdapter 类将 excel 文件导入数据表。 excel表的前两行合并为空,列标题从第三行开始。我从第 3 行开始填充了 492 行,即 492 - 2 行 = 489 +(列标题为 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();
}
可能出了什么问题?
【问题讨论】:
标签: c# asp.net .net excel datatable