题
我需要操作 Excel 工作表工作簿(添加工作表/添加数据/ 隐藏列 / 用密码保护单元格 /更改字段内容/等)
我应该使用微软提供的COM对象(但我认为它们在asp.NET中使用时没有什么问题)
或者是否有一个好的(商业或免费)库/插件可用于进行此类活动。
请帮忙
解决方案
尝试展开片齿轮第三方组件
其他提示
我发现的最简单的方法是使用 Excel XML 格式. 。这样您就可以像编辑任何其他 XML 文件一样编辑 Excel 工作表。要了解 Excel 如何隐藏列或使用密码保护它们,请手动执行这些操作,并查看 Excel 如何将它们另存为 XML。编写代码轻而易举,非常稳定,而且速度很快。
操作本机 Excel 文件更困难:您可以将 COM 对象与 主要互操作程序集. 。根据我的经验,这很难做到正确。在最好的情况下,Excel 会保留自身的旧副本,您可以通过计划的每晚服务器重置来缓解这种情况。在最坏的情况下,Excel 将随机挂起,导致您的网站无响应。
使用本机 Excel 文件的另一种方法是 适用于 Office 的 Visual Studio 工具. 。它当然比 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软件组件。已经用了两年,工程确定,这是便宜一点的是,一个以上的文件档案化管理,我不知道在这里看到它之前。