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;
        }

MSOffice2003および2007のExcelファイルをエクスポートおよびインポートできるように問題を解決してください。

ありがとう、Rajbir

4

0 に答える 0