【问题标题】:ASP.NET manuplating Excel sheetASP.NET 处理 Excel 工作表
【发布时间】:2010-10-30 05:28:16
【问题描述】:

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

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

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

请帮忙

【问题讨论】:

    标签: asp.net excel


    【解决方案1】:

    尝试电子表格齿轮第三方组件

    http://www.spreadsheetgear.com/

    【讨论】:

      【解决方案2】:

      我发现最简单的方法是使用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 网站中的工作方式。

      【讨论】:

        【解决方案3】:

        使用SpreadsheetGear,您可以完全访问 Excel 文档和所有宏功能,包括保护和取消保护单元格、列等的能力。除了 WinForms 之外,我们拥有您所描述的相同内容。

        【讨论】:

          【解决方案4】:

          我们使用了 COM 对象,我不能推荐它。最大的问题是对象永远不会被释放......

          我们现在使用 Gembox 软件中的组件。用了两年了,还行,比上面说的便宜一点,在这里看到之前不知道。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-09-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多