3

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

4

7 回答 7

4

我最近不得不这样做,并发现 NPOI ( http://npoi.codeplex.com/ ) 是最好的选择,特别是因为我需要生成二进制 .xls 文件,这些文件不会给客户带来关于文件类型的任何令人困惑的错误。

有关更多信息,请参阅此博客文章。您还会发现,由于它是现有框架的一个端口,因此对于适用于该端口的原始框架有很多帮助。

于 2009-11-09T17:21:25.680 回答
3

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 文件格式)读取器/写入器。文件格式随着时间的推移而发展,对于普通人来说太复杂了。

于 2009-11-09T17:22:05.000 回答
1

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

它具有将数据从DataSet、DataTable 导出为ex​​cel 格式的有用功能。它还可以保存 excel 文件(xls、xlsx)或将 excel 表示为流,为开发人员打开更多机会。查看更多C# excel 文件代码示例。

于 2011-06-21T11:33:07.953 回答
1

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

您可以在此处查看一些现场样本并此处下载免费试用版。

免责声明:我拥有 SpreadsheetGear LLC

于 2009-11-09T20:22:18.117 回答
1

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

问候

于 2009-11-09T17:23:08.743 回答
0

您不需要第三方工具来读取/写入 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
于 2011-07-23T08:15:43.937 回答
0

可能免费组件“ CarlosAg ”的功能足以满足您的需求?不需要在机器上安装 Excel。我使用它并对它感到满意。

于 2009-11-09T17:19:16.003 回答