. net Excel库,可以读写.xls文件
本文关键字:读写 xls 文件 Excel net | 更新日期: 2023-09-27 17:54:00
我正在寻找一个读取/写入。xls(不是。xlsx)文件的Excel库。
我正在使用excellibrary,但它有很多bug,我似乎无法打开我创建的文件。这个问题已经被发现快一年了,但还没有解决。
我在另一个线程中看到有人建议使用EPPlus,但这只适用于2007/2010 .xlsx格式。
我过去用过Koogra,而且很满意,但我认为它只能读取…不写。
如果你知道一个图书馆,请告诉我它叫什么。
编辑:如果有必要的话,我很乐意用内置的Microsoft.Office.Interop.Excel来创建我的Excel文件,但是我的机器有Office 2007,而目标机器只有Office 2003。我注意到我有2个文件版本的库:12和14。我检查了目标机器上的Excel版本,它是11.8169.8172 -我假设内置的Excel互操作不会在目标上工作?
推荐NPOI。NPOI是免费的,只适用于。xls文件。它帮助了我很多。
详细说明:如果你使用NPOI,你不需要在你的机器上安装Microsoft Office来处理。xls文件。
查看这些博客文章:
用c#创建Excel电子表格。xls和。xlsx
NPOI与Excel表格和动态图表
(更新)NPOI 2.0增加了对XLSX和DOCX的支持。
你可以在这里阅读更多信息:
NPOI 2.0系列帖子安排
是否有不能使用Excel ODBC连接来读写Excel的原因?例如,我使用以下代码从Excel文件中像数据库一样逐行读取:
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"数据库"。如您所见,您可以选择要使用的版本号,以便您可以降级Excel 2003机器的Excel版本。实际上,使用互操作也是如此。您可以使用较低版本,它应该与Excel 2003一起工作,即使您的开发PC上只有较高版本。
你可以考虑使用第三方工具,称为Excel Jetcell .NET组件来读写Excel文件:
c#示例
// 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。净示例
' Create New Excel Workbook
Dim Wbook As ExcelWorkbook = New ExcelWorkbook()
Dim Cells As ExcelCellCollection = 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")