我需要创建一个可以读取/写入 Excel 文件的程序。我应该使用 OleDB 还是使用 Excel 对象?彼此相比有什么优势,我在哪里可以阅读以开始实施这一点?
7 回答
我最近不得不这样做,并发现 NPOI ( http://npoi.codeplex.com/ ) 是最好的选择,特别是因为我需要生成二进制 .xls 文件,这些文件不会给客户带来关于文件类型的任何令人困惑的错误。
有关更多信息,请参阅此博客文章。您还会发现,由于它是现有框架的一个端口,因此对于适用于该端口的原始框架有很多帮助。
Excel 自动化可能很混乱,如果您的程序打算在 Web 服务器上运行,它也无济于事,但它会为您提供读取、修改和创建 Excel 文件的完全访问权限。
使用 OLEDB 驱动程序仅适用于 Excel 1998-2003 文件,不适用于 Excel 2007,仅具有有限的功能子集(将工作表和命名区域视为“表格”,您可以像数据库一样读取和写入 - 无法控制格式、公式等),并且有一些明显的限制,但在 ASP.NET 应用程序中可以正常工作。
(您可以下载一个单独的驱动程序以通过 OLEDB 访问 Excel 2007 的 OOXML 文件 (xlsx)。与旧驱动程序相比,我不知道它的功能或限制是什么。)
如果应用程序在 ASP.NET 中运行,另一种选择是获取用于读取和写入 Excel 文件的第三方库。有些是开源的(通常是那些只从 Excel 2002-2007 读取/写入 Excel XML 文件的那些,NPOI 是一个值得注意的例外),有些非常昂贵。
关于您唯一不想做的事情是尝试实现您自己的 Excel BIFF 格式(标准 1997-2003 文件格式)读取器/写入器。文件格式随着时间的推移而发展,对于普通人来说太复杂了。
如果您想在服务器的应用程序中读取/写入 excel 文件,您可以使用Excel Jetcell .NET 组件。
它具有将数据从DataSet、DataTable 导出为excel 格式的有用功能。它还可以保存 excel 文件(xls、xlsx)或将 excel 表示为流,为开发人员打开更多机会。查看更多C# excel 文件代码示例。
SpreadsheetGear for .NET是一个与 Excel 兼容的电子表格组件,它可以读取和写入 Excel 工作簿(xls 和 xlsx)等等,并且不依赖于 Excel、OleDb 或除 .NET 库之外的任何东西。
免责声明:我拥有 SpreadsheetGear LLC
对于写作,您可以考虑一个简单的解决方法,让您的生活更轻松......将所有内容写入逗号分隔的文本文件并将其保存为 csv。然后通过 shell 命令以您的 csv 作为参数启动 Excel。Voilla,即时导出到 Excel。
问候
您不需要第三方工具来读取/写入 excel 文件...您需要的所有内容都已包含在 namspace Microsoft.Office.Interop.Excel 中;
首先创建一个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
可能免费组件“ CarlosAg ”的功能足以满足您的需求?不需要在机器上安装 Excel。我使用它并对它感到满意。