【发布时间】:2010-10-30 05:28:16
【问题描述】:
我需要制作一个 Excel 工作表工作簿(添加工作表/添加数据/隐藏列/使用密码保护单元格/更改字段内容/等等)
我应该使用微软提供的 COM 对象吗(但我认为它们在 asp.NET 中使用时几乎没有问题)
或者是否有一个好的(商业或免费)库/插件可用于进行此类活动。
请帮忙
【问题讨论】:
我需要制作一个 Excel 工作表工作簿(添加工作表/添加数据/隐藏列/使用密码保护单元格/更改字段内容/等等)
我应该使用微软提供的 COM 对象吗(但我认为它们在 asp.NET 中使用时几乎没有问题)
或者是否有一个好的(商业或免费)库/插件可用于进行此类活动。
请帮忙
【问题讨论】:
尝试电子表格齿轮第三方组件
【讨论】:
我发现最简单的方法是使用Excel XML format。这样您就可以像编辑任何其他 XML 文件一样编辑 Excel 工作表。要查看 Excel 如何隐藏列或使用密码保护它们,请手动执行这些操作并查看 Excel 如何将它们保存为 XML。编写代码轻而易举,稳定且快速。
处理原生 Excel 文件更难:您可以使用带有primary interop assemblies 的 COM 对象。根据我的经验,这很难做到正确。在最好的情况下,Excel 会留下自己的旧副本,您可以通过计划的每晚服务器重置来缓解这种情况。在最坏的情况下,Excel 会随机挂起,使您的网站无响应。
使用本机 Excel 文件的另一种方法是 Visual Studio Tools for Office。它肯定比 COM 互操作更容易使用,并且在 Visual Basic 中效果最好:
Application.Workbooks.Open("Workbook.xls")
C# 缺少可选参数,打开工作簿就成了一个坏笑话:
Application.Workbooks.Open(@"Workbook.xls",
missing, missing, missing, missing, missing, missing, missing,
missing, missing, missing, missing, missing,missing, missing);
我没有深入研究 VSTO,因为 XML 操作对我来说非常有效。也许其他人可以评论它在 ASP.NET 网站中的工作方式。
【讨论】:
使用SpreadsheetGear,您可以完全访问 Excel 文档和所有宏功能,包括保护和取消保护单元格、列等的能力。除了 WinForms 之外,我们拥有您所描述的相同内容。
【讨论】:
我们使用了 COM 对象,我不能推荐它。最大的问题是对象永远不会被释放......
我们现在使用 Gembox 软件中的组件。用了两年了,还行,比上面说的便宜一点,在这里看到之前不知道。
【讨论】: