我可以在不使用Microsoft Interop Assembly的情况下创建Microsoft Excel文件吗?

时间:2012-10-31 17:45:58

标签: c# sql-server ms-office office-interop

  

可能重复:
  How can I programatically create, read, write an excel without having office installed?

我可以在不使用Microsoft Office Interop Assembly的情况下创建Microsoft Excel文件吗? 我需要将sql server表中的所有值导出到Excel文件。行总数可以在50000到1200000行之间变化。 我需要从我的C#.net代码生成Excel文件,在那里我将读取表的值。我唯一的限制是我无法使用Microsoft Office Interop Assembly。

我不能使用CSV,或使用HTML表技巧,因为有些文件将包含多个标签,其中每个标签将包含来自不同表格的数据。

2 个答案:

答案 0 :(得分:2)

您最好的选择可能只是将数据导出为CSV文件。这有利于多种原因:

  1. CSV通常小于excel工作簿(阅读:通过代码创建更快)
  2. Excel可以像普通文档一样打开CSV并编辑它们等。
  3. 使用C#中的几个循环和一些弯头润滑来创建CSV非常简单。
  4. 唯一的缺点是,如果您以某种方式计划格式化数据,尤其是在将其放入工作簿表单之前。

答案 1 :(得分:1)

你可以用这个:

http://netoffice.codeplex.com/

功能是(但不仅仅是):

  • 包含Office版本2000,2002,2003,2007,2010,2013的所有功能。
  • 没有依赖关系,没有互操作程序集,不需要VSTO
  • 在语法和语义上与Microsoft Interop程序集相同