我需要操作 Excel 工作表工作簿(添加工作表/添加数据/ 隐藏列 / 用密码保护单元格 /更改字段内容/等)

我应该使用微软提供的COM对象(但我认为它们在asp.NET中使用时没有什么问题)

或者是否有一个好的(商业或免费)库/插件可用于进行此类活动。

请帮忙

有帮助吗?

解决方案

尝试展开片齿轮第三方组件

http://www.spreadsheetgear.com/

其他提示

我发现的最简单的方法是使用 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软件组件。已经用了两年,工程确定,这是便宜一点的是,一个以上的文件档案化管理,我不知道在这里看到它之前。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top