【问题标题】:Web service Excel conversionWeb服务Excel转换
【发布时间】:2012-02-27 07:48:09
【问题描述】:

我有 ASP.NET Web 服务,它正在创建 XML 表格格式的文件。

我需要将此文件转换为 Excel 2003 格式。

我可以用什么来代替 Microsoft.Interop 库?

更新:我还需要从原始文件中复制格式。

【问题讨论】:

  • Web 服务在这里真的不相关 - 它也可以是控制台、Winforms 或其他任何东西 - 你最好重新标记问题让合适的人看看。
  • Web 服务非常相关。他无法通过 Web 服务使用 Office 自动化。
  • 这里有一些关于服务器端自动化的信息support.microsoft.com/default.aspx?scid=kb;EN-US;q257757#kb2

标签: c# winforms web-services console


【解决方案1】:

您可以使用 linq 从 xml 中读取数据,然后使用 linq 将其插入到运行中,以使用上面帖子中提供的 dll 进行优化。

也可以看看这篇文章,希望对你有帮助

http://blogs.msdn.com/b/bethmassi/archive/2007/10/30/quickly-import-and-export-excel-data-with-linq-to-xml.aspx

【讨论】:

    【解决方案2】:

    您尝试过 OpenXML 吗? Here 就是一个例子

    With Office 2007

    查看here 的单元格格式

    【讨论】:

    • 我注意到,OpenXML 只能迁移数据,不能迁移单元格的格式 :(
    【解决方案3】:

    我使用ExcelLibrary 我认为这是一个非常易于使用的工具。 您可以通过一种方法将 XML 字符串转换为 excel 文件。

    我也听说过 NPOI,不妨也看看。

    【讨论】:

      【解决方案4】:

      我自己找到了答案。

      我不能使用不同的库,因为我必须以 XML 表格格式打开文件并将其重新保存为 Excel 2003 格式。

      也许我在这个问题上的经验会对某人有所帮助。我将 Windows Server 2008 与 IIS 7.0 和 Excel 库 Microsoft.Office.Interop.Excel 版本 12 一起使用。

      微软表示,使用 Interop DLL 可能会导致不可预知的结果,但并非不可能

      使用 Interop 类的主要问题在于用户访问启动 DCOM 应用程序,即启动 Web 服务。

      为了让网络服务以我接下来的方式正常工作:

      1. 我打开“dcomcnfg”并禁用所有 DCOM 的授权 组件。

        另一种方法是准确地找到您的 DCOM 对象并给出 向用户本地启动的权限,即启动服务。

      2. 授予注册表分支权限

        HKEY_CLASSES_ROOT\CLSID\ID_OF_MICROSOFT_APPLICATION_CLASS

        ID_OF_MICROSOFT_APPLICATION_CLASS = 类,包含在 访问 Interop DLL 时出现 Web 服务器错误

      3. 很奇怪,但很重要:我创建了文件夹

        对于 86x:C:\Windows\System32\config\systemprofile\Desktop
        对于 64x:C:\Windows\SysWOW64\config\systemprofile\Desktop

      4. 向 Web 服务用户授予对所有文件夹的写入权限,我的 网络服务使用,包括第 (3) 项中的文件夹。

      如果您的网络服务在 NETWORK SERVICE 下工作,请尝试将其更改为某个本地用户,也许它可能会对您有所帮助。

      【讨论】:

      • 不,这并非不可能,只是不可取。您的代码现在可以正常工作 - 对于单个请求。同时处理多个请求的效果如何?一周后效果如何? -1.
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多