导入具有2000列的Excel

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

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

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

有两个非常推荐的:

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

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