我们可以在Azure功能中使用Microsoft.Office.Interop.excel.dll吗?

时间:2018-07-27 07:00:14

标签: function azure

我想使用Azure函数中的Microsoft.Office.Interop.excel.dll将数据从数据表导出到Excel。我在azure函数内部的wwwroot中添加了dll,并在dll依赖项中添加了project.json。这是我的问题。

  

错误:执行函数:Functions.TimerTriggerCSharp1时发生异常。 Microsoft.Azure.WebJobs.Script:发生一个或多个错误。 f-TimerTriggerCSharp1 __- 1571765013:无法加载文件或程序集“办公室,版本= 14.0.0.0,文化=中性,PublicKeyToken = 71e9bce111e9429c”或其依赖项之一。系统找不到指定的文件。

已使用:#r "Microsoft.Office.Interop.Excel.dll"

我的project.json文件:

{
  "frameworks": {
    "net46": {
      "dependencies": {
        "Microsoft.Office.Interop.Excel": "14.0.0.0"
      }
    }
  }
}

1 个答案:

答案 0 :(得分:1)

Microsoft.Office.Interop.Excel.dll具有许多依赖性。它依赖于在目标计算机上安装相关的Microsoft Office产品(或其子集)。我认为只要付出足够的努力并让您可能就能使它正常工作,即使如此,我也不确定它的可靠性。这些Interop程序集通常用于与Microsoft Office进行客户端交互(即用于胖客户端桌面应用程序),而不是构建用于与文档进行交互的服务器/服务代码的正确方法。

Microsoft的Open XML SDK是免费使用的,并提供了用于与Microsoft Office文档(当然包括Excel)进行交互的库。将您的代码切换为使用该库,很遗憾,您需要做一些重做,但是您将拥有正确的体系结构/组件来处理针对Office文档的服务器端编程。另外,您可以付费购买see possible nuget packages here。请记住,您想要的是一个库,它更适合服务器端而不是客户端执行。