1

我正在使用以下代码将数据表中的数据导入到 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 文件的方式解决我的问题。

谢谢,拉杰比尔

4

0 回答 0