11

我需要读取 XLSX 文件并从中提取最大数量的内容。我应该使用哪个 API?

OLE DB、开放 XML SDK 还是 Excel 互操作?

  • 哪个最容易使用?
  • 您可以使用其中一种方法检索所有信息吗?即日期、时间、合并单元格、表格、数据透视表等。
4

1 回答 1

19

您可以尝试所有这些并选择最适合您的...

根据您要阅读的数据,我建议您使用 Open XML over Interop 或 Ole DB。
我不知道一个开放的 XML SDK,虽然我有一些使用EPPlus库的经验,我经常使用它并且只能说好话 - 它快速,易于学习,有很好的例子。该库基于 Open Office XML 格式,所以我想它与您提到的 SDK 几乎相同,并且能够轻松读写 Excel 2007 和 2010 文件。
在链接的网络上,您会找到一个库本身、文档和一些示例“Hello World”项目供下载。

为什么首先要建立那个图书馆?因为有了它,您不仅可以读取单元格的值,还可以读取它们的颜色、字体、宽度和高度、合并以及所有详细的内容,您不仅可以读取,还可以进行修改。更重要的是,您不需要安装 Excel 来执行此操作。

其次——以防万一你需要从工作表中提取表格数据——你可以使用 OLE DB。恐怕您将无法提取有关格式、颜色等的任何信息,并且数据必须在表格组织的工作表中,因此您可以将其视为数据库的表。

最后一个是 Interop,因为:
- 它是一个 COM 库,因此在通过 .NET 使用它时需要非常小心,因为它很容易导致一些丑陋且难以发现的内存泄漏(我自己的糟糕经历证实了) -如果您没有正确处理它们的对象,它将打开 Excel.exe 进程,
-它比以前的方法慢得多,
-基本上,它几乎没有以前的方法之一(EPPlus 或 OleDB)的附加值,并且需要Excel要安装在客户的机器上,为什么要使用它?

那么祝你好运吧。

于 2012-04-28T18:42:33.530 回答