我目前正在开发一个与 Excel 互操作一起使用的 C#.net 项目(在 VS2010 中)。不过,在某些时候,我将不得不通过 Mono Develop 将该项目放到我们的 Linux 服务器上。
我听说 Excel 互操作在 Mono 中不起作用。无论如何,我可以使用 Mono 通过代码创建和操作 Excel 文件吗?
非常感谢!
编辑:理想情况下,我想要一种免费的方法,并且仍然能够支持格式化。我真的不需要读权限,只需要写。
你真的需要使用 Excel 本身吗?这里的问题不是 Excel 不能与 Mono 一起使用,而是 Excel 不能与 Linux 一起使用。为了在 Linux 上运行 Excel 和相关的 COM 互操作,您可能可以使用Wine做一些 hacky ,但如果您要使用 Linux,我可能会建议完全放弃 Excel。有几个库可用于以更跨平台的方式处理 .xls 和 .xlsx 文件:整个 StackOverflow 问题都致力于在不使用 Excel 互操作的情况下处理 Excel 文件。
现在,如果您要做的不仅仅是创建文件——例如,如果你想使用 Excel 的计算引擎——那么你可能不得不使用 Excel 本身。在这种情况下,我看到三个明确的选项:(a)在 Wine 下运行 Excel(可能还有您的应用程序),并希望它能正常工作,(b)使用 Excel for Mac 并在 OS X 上运行您的服务器,或者(c ) 使用 Windows。我不知道选项 (a) 和 (b) 是否允许正确的 COM 互操作,尽管我希望 Wine 尝试复制所有 COM 并且 Office for Mac 具有某种 API 来代替 COM 互操作。第三种选择可能有两种形式:您可以使用 Windows Server 来运行您的网站,或者您可以将一台机器或 VM 用于 Excel 计算引擎,并从您的 Web 服务器代码的其他部分联系它。
我用 MOMA 检查了 excelpackage.dll,它没有报告任何警告和错误。不过,这可能适用于未经测试的单声道。它也是免费的 GPL。 http://excelpackage.codeplex.com/