.NET Excel Library that can read/write .xls files
我在找一个读/写.xls(而不是.xlsx)文件的Excel库。
我正在使用Excellibrary,但它非常麻烦,我似乎无法打开我创建的文件。这个问题已经知道将近一年了,还没有解决。
我在另一个线程中看到有人建议使用epplus,但它只适用于2007/2010.xlsx格式。
我以前用过古格拉语,对它很满意,但我相信它只能读…不写。
如果你知道图书馆,请告诉我它叫什么。
编辑:如果需要,我很高兴使用内置的microsoft.office.interop.excel创建Excel文件,但是我的计算机有Office2007,而目标计算机只有Office2003。我注意到那个库有两个文件版本:12和14。我检查了目标机器上的excel版本,它是11.8169.8172-我假设内置的excel interop在目标机器上不工作?
我推荐NPOI。NPOI是免费的,只与.xls文件一起工作。这对我有很大帮助。
详细信息:如果使用NPOI,则不需要在计算机上安装Microsoft Office即可使用.xls文件。
检查这些日志:
在C中创建Excel电子表格.xls和.xlsx#
带Excel表格和动态图表的NPOI
[更新]
NPOI2.0增加了对XLSX和DocX的支持。
您可以在这里阅读更多信息:
计划的NPOI 2.0系列职位
是否有理由不能使用Excel ODBC连接来读写Excel?例如,我使用以下代码逐行读取Excel文件,如数据库:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | private DataTable LoadExcelData(string fileName) { string Connection ="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName +";Extended Properties="Excel 12.0;HDR=Yes;IMEX=1";"; OleDbConnection con = new OleDbConnection(Connection); OleDbCommand command = new OleDbCommand(); DataTable dt = new DataTable(); OleDbDataAdapter myCommand = new OleDbDataAdapter("select * from [Sheet1$] WHERE LastName <> '' ORDER BY LastName, FirstName", con); myCommand.Fill(dt); Console.WriteLine(dt.Rows.Count); return dt; } |
您可以用同样的方法写入Excel"数据库"。如您所见,您可以选择要使用的版本号,以便您可以为使用Excel2003的计算机降级Excel版本。实际上,使用互操作也是如此。您可以使用较低的版本,它应该与Excel2003一起工作,即使您的开发PC上只有较高的版本。
您可以考虑为读/写Excel文件调用Excel Jetcell.net组件的第三方工具:
C样本
1 2 3 4 5 6 7 8 9 10 | // Create New Excel Workbook ExcelWorkbook Wbook = new ExcelWorkbook(); ExcelCellCollection Cells = Wbook.Worksheets.Add("Sheet1").Cells; Cells["A1"].Value ="Excel writer example (C#)"; Cells["A1"].Style.Font.Bold = true; Cells["B1"].Value ="=550 + 5"; // Write Excel XLS file Wbook.WriteXLS("excel_net.xls"); |
VB.NET样本
2