C#和Excel文件

我需要创build一个可以读取/写入Excel文件的程序。 我应该使用OleDB还是使用Excel对象? 互相之间有什么优势,我可以在哪里阅读以开始实施?

最近我不得不这样做,并发现NPOI( http://npoi.codeplex.com/ )是最好的select,尤其是因为我需要生成二进制.xls文件,而不会为客户端提供任何关于文件types的混淆错误。

看到这个博客文章了解更多信息。 您还会发现,因为它是现有框架的一个端口,所以可用于适用于该端口的原始框架的大量帮助。

Excel自动化可能很麻烦,如果您的程序打算在Web服务器上运行,Excel自动化将无法帮助您,但它可以让您完全读取,修改和创buildExcel文件。

使用OLEDB驱动程序仅适用于Excel 1998-2003文件,而不是Excel 2007,只具有有限的function子集(将工作表和命名区域视为“表”,您可以像数据库一样读取和写入) – 无法控制格式,公式等),并有一些显着的限制,但在ASP.NET应用程序中工作得很好。

(您可以下载一个单独的驱动程序来通过OLEDB访问Excel 2007的OOXML文件(xlsx),我不知道它与旧驱动程序相比有什么function或限制)。

如果应用程序在ASP.NET中运行,另一种select是获取用于读取和写入Excel文件的第三方库。 有些是开源的(通常是那些只能从Excel 2002-2007读取/写入Excel XML文件,NPOI是一个明显的例外),有些则相当昂贵。

关于你唯一不想做的事就是试着实现你自己的Excel BIFF格式(标准的1997-2003文件格式)读写器。 文件格式随着时间的推移而变化,对于凡人来说太复杂了。

对于编写,有一个简单的解决方法,你可能会考虑,让你的生活更轻松….写入所有的逗号分隔文本文件,并保存为CSV。 然后以csv作为参数,通过shell命令启动Excel。 Voilla,即时导出到Excel。

问候

SpreadsheetGear for .NET是一个Excel兼容的电子表格组件,可以读取和写入Excel工作簿(xls和xlsx)以及其他东西,并且不依赖于Excel,OleDb或.NET库以外的任何其他东西。

你可以在这里看到一些实况样本,并在这里下载免费试用。

免责声明:我自己的SpreadsheetGear LLC

如果您想要在服务器上读取/写入应用程序中的excel文件 ,则可以使用Excel Jetcell .NET组件

它具有将数据从DataSet,DataTable导出为Excel格式的有用function。 它也可以保存excel文件(xls,xlsx),或者将excel表示为一个为开发人员提供更多机会的stream。 查看更多C#excel文件代码示例。

免费组件“ CarlosAg ”的特征可能足以满足您的需求吗? 在机器上不需要安装Excel。 我用它,很高兴。

你不需要第三方工具来读取/写入excel文件…所有你需要的是已经包含在namspace Microsoft.Office.Interop.Excel;
首先创build一个excel文件,并将其命名为例如.. test1.xls …或其他任何东西在这里是你需要的代码:

using Excel = Microsoft.Office.Interop.Excel; Excel.Application AppName = new Excel.Application(); Excel.Workbook bookName = AppName.Workbooks.Open(C:\....\test1); Excel.Worksheet sheetName = AppName.Worksheets.get_Item(1); sheetName.Rows[5].Cells[5].Value = "hello!"; //that writes hello in cell 5,5 in test1.xls string box; box = sheetName.Rows[10].Cells[10].Value; //that reads the value of 10,10 cell in test1.xls and place it in box variable