Web服务Excel转换

时间:2012-02-27 07:48:09

标签: c# winforms web-services console

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

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

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

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

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

With Office 2007

查看here单元格格式

答案 2 :(得分:0)

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

我也听说过NPOI,也许也可以看一下。

答案 3 :(得分:-1)

我自己找到了答案。

我无法使用不同的库,因为我必须以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
    for 64x:C:\ Windows \ SysWOW64 \ config \ systemprofile \ Desktop

  4. 授予Web服务用户对所有文件夹的权限,我的 网络服务使用,包括第(3)项中的文件夹。
  5. 如果您的网络服务在NETWORK SERVICE下运行,请尝试将其更改为某个本地用户,可能可能对您有帮助。