导入具有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安装在机器上。
- .net VSTO保存excel文件并在服务器上共享
- 如何将C#对象列表导出到Excel电子表格?
- 为什么我得到SerializationException如果我不把我的.NET DLL复制到Office应用程序文件夹?
- 使用OleDbConnection检索带有特殊字符的Excel工作表名称
- Excel互操作 – 停止调整行和列的图表
- ASP.NET MVC / C# – 如何转换/创buildExcel(xls)从MVC中的DataTable /列表的格式?
- 在C#.Net中将Word,Excel,RTF转换为PDF
- 刷新excel文件vb.net
- Microsoft.Office.Interop.Excel具有“坏值”作为默认参数