OLE DB与OPEN XML SDK vs Excel.interop

时间:2012-04-28 16:33:01

标签: c# oledb openxml

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

OLE DB,打开XML SDK或Excel Interop?

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

1 个答案:

答案 0 :(得分:17)

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

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

为什么那个图书馆在第一位?因为有了它,您不仅可以读取单元格值,还可以读取它们的颜色,字体,宽度和高度,合并以及所有详细内容,您不仅可以阅读,还可以进行修改。更重要的是,您不需要安装Excel就可以做到这一点。

在第二位 - 如果您需要从工作表中提取表格数据 - 您可以使用OLE DB。我担心你将无法提取有关格式,颜色等的任何信息,以及数据必须在表格式组织的工作表中,因此您可以将其视为数据库的表。

最后一个是Interop,因为:
- 它是一个COM库,所以你需要在通过.NET玩它时要非常小心,因为很容易造成一些丑陋而且很难找到内存泄漏(由我自己的经验证实) - 如果你不处理它们的对象正确地,它打开了Excel.exe进程,
- 它比以前的方法慢得多,
- 基本上,它几乎没有以前的方法之一(EPPlus或OleDB),并且需要在客户机的机器上安装Excel,所以为什么要使用它呢?

祝你好运。