我正在使用以下代码将数据表中的数据导入到 excel 文件中:
public void ExportDataTable(DataTable dt)
{
string attachment = "attachment; filename=EmployeeList.xls";
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("content-disposition", attachment);
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
string sTab = "";
foreach (DataColumn dc in dt.Columns)
{
HttpContext.Current.Response.Write(sTab + dc.ColumnName);
sTab = "\t";
}
HttpContext.Current.Response.Write("\n");
int i;
foreach (DataRow dr in dt.Rows)
{
sTab = "";
for (i = 0; i < dt.Columns.Count; i++)
{
HttpContext.Current.Response.Write(sTab + dr[i].ToString());
sTab = "\t";
}
HttpContext.Current.Response.Write("\n");
}
HttpContext.Current.Response.End();
}
它工作正常。
现在,当我将此 excel 文件导入数据表时,会出现以下错误:
外部表不是预期的格式。
这是我将 excel 文件导出到数据表的代码:
public static DataTable excelToDataTable(string file)
{
DataTable dt = new DataTable();
OleDbConnection oledbcn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= Server.MapPath("EmployeeList.xls").ToString(); Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'");
string SheetName = "EmployeeList";
oledbcn.Open();
OleDbCommand cmd = new OleDbCommand(@"SELECT * FROM [" + SheetName + "$]", oledbcn);
OleDbDataAdapter oledbda = new OleDbDataAdapter();
oledbda.SelectCommand = cmd;
oledbda.Fill(dt);
oledbcn.Close();
return dt;
}
请以我可以导出和导入 MSOffice 2003 和 2007 excel 文件的方式解决我的问题。
谢谢,拉杰比尔