无需办公即可从C#创建Excel文件

tbi*_*hel 57 c# excel file-io office-interop

我正在编写一个生成excel报告的程序,目前正在使用Microsoft.Interop.Excel引用.我的开发计算机上有Excel,但最终用户可能安装了Office,也可能没安装Office.如果最终用户计算机上未安装Office,或者此互操作服务是否与实际应用程序分开,此工具是否会失败?

Are*_*ren 40

如果您对制作.xlsx(Office 2007及更高版本)文件感兴趣,那么您很幸运.Office 2007+使用OpenXML,缺少更简洁的描述是名为.xlsx的zip文件中的XML文件

获取excel文件(2007+)并将其重命名为.zip,您可以打开它并查看.如果您使用.NET 3.5,你可以使用System.IO.Packaging程序库的关系和压缩文件本身,和LINQ操纵为XML的XML播放(或只是DOM如果你更舒服).

否则id推荐DotNetZip,一个用于操纵zipfiles的强大库.

OpenXMLDeveloper有很多关于OpenXML的资源,你可以在那里找到更多.

如果你想要.xls(2003及以下版本),你将不得不考虑第三方库或者自己学习文件格式,以便在没有安装excel的情况下实现这一目标.


Adr*_*der 36

除非您在服务器/ PC上安装了Excel或使用外部工具(可以不使用Excel Interop,请参阅从C#创建Excel(.XLS和.XLSX)文件),否则它将失败.使用interop需要安装Excel.


小智 28

如果您使用Excel 2007,请尝试EPPlus.支持范围,cellstyling,图表,形状,图片和许多其他东西


Tho*_*mas 11

有一些选择:

  • NPOI - 哪些是免费和开源的.
  • Aspose - 绝对不是免费但强大的.
  • 电子表格ML - 基本上用于创建电子表格的XML.

使用Interop将要求将Excel安装在运行它的计算机上.在服务器端解决方案中,这将是非常糟糕的.相反,您应该使用类似上面的工具,它允许您在不安装Excel的情况下构建Excel文件.

如果用户没有Excel但有一个工具可以读取Excel(如Open Office),那么显然他们可以打开它.Microsoft为没有Excel的用户提供免费的Excel查看器.


Nic*_*ver 10

互操作调用别的东西,它是一个互操作性程序集,所以你要与某些东西互操作......在这种情况下,Excel,实际安装的Excel.

在这种情况下是的,它将无法运行,因为它依赖于excel,你只是调用excel函数.如果他们没有安装它......运气不好.

有没有Excel生成的方法,只要2007文件格式没问题,这里有几个:

正如我所说,这是2007年的格式,通常如果有的话,这就是交易破坏者.


Jus*_*tin 7

使用OleDB,您可以非常轻松地创建,读取和编辑Excel文件.阅读MSDN文档以获取更多信息:

http://msdn.microsoft.com/en-us/library/aa288452(VS.71).aspx

我已经使用OleDB来读取excel文件,我知道你可以创建它们,但我还没有亲手做过.