OLE DB与OPEN XML SDK vs Excel.interop

cec*_*mel 11 c# oledb openxml

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

OLE DB,打开XML SDK或Excel Interop?

  • 哪个最容易使用?
  • 你能用一个或另一个来检索所有信息吗?即日期,时间,合并单元格,表格,数据透视表等

mj8*_*j82 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将安装在客户端的机器上,为什么要使用它?

那么祝你好运吧.

  • Microsoft本身不建议使用Interop进行服务器部署 (2认同)