导入具有2000列的Excel

时间:2016-09-21 09:01:45

标签: c# asp.net .net excel

我使用OleDb导入具有2000列的Excel文件。因此,通过使用这段代码,我的DataTable中只能有255列。我想要一些其他方式,或者如果可能的话,这样就可以将2000列添加到我的DataTable中。

DataTable dtExcelRecords = new DataTable();

 using (OleDbConnection con = new OleDbConnection(connectionString))
 {

      con.Open();
      DataTable dtSheet = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
      List<string> listSheet = new List<string>();
      foreach (DataRow drSheet in dtSheet.Rows)
      {
           if (drSheet["TABLE_NAME"].ToString().Contains("$"))
               {
               listSheet.Add(drSheet["TABLE_NAME"].ToString());
               }
      }

      string workSheetName = listSheet.FirstOrDefault(x => x.Contains(cCommon.sFDDetailsWorkSheetName));
      OleDbCommand cmd = new OleDbCommand(string.Format("SELECT * FROM [{0}]", workSheetName.Trim()), con);
      cmd.CommandType = System.Data.CommandType.Text;
      OleDbDataAdapter dAdapter = new OleDbDataAdapter(cmd);
      dAdapter.SelectCommand = cmd;
      dAdapter.Fill(dtExcelRecords);
      }

1 个答案:

答案 0 :(得分:1)

使用OleDb访问Excel是一种可行的方法,但不是最好的方法。我建议考虑使用第三方库从Excel导入。

有两个非常推荐:

  • NPOI,它是POI的.NET端口:MS文档的Java API
  • ClosedXML,它是OpenXML上的一个包装器,它是一个用于访问Excel电子表格的Microsoft开源库

两者都很好并且会完成这项工作。此外,它们是免费的,不需要在机器上安装MS Office。