Office服务器端自动化还能用Office 365吗?

问题描述 投票:0回答:1

我有一个ASP.NET Webforms应用程序,用户可以通过服务器端的Office Automation创建报表。它基本上是与正在填写的FormFields一起工作的,最后用户得到一个带有Office文档的下载。这个Application已经很老了,这个软件不是我设计的。我也知道office服务器自动化的副作用,还有这篇文章。

https:/support.microsoft.comen-ushelp257757considerations-for-server-side-automation-of-office。

只是用了近15年,用了好几个不同的Office版本,最新的是Office 2016,但现在我得知道它是否还能用Office 365。它看起来像一个混合解决方案,软件即服务,但还是需要在机器上安装一些。

设置起来有点小黑,像。

IIS应用程序用户需要拥有以下文件夹的所有权:

  • C:\\Programme(x86)\Microsoft Office(x86)
  • C:\\程序/Microsoft Office
  • C:Windows/System32configsystemprofile/AppData
  • C:Windows/System32/Systemprofile/Desktop(有时会错过,所以需要创建)。
  • C:Windows/SysWOW64config/systemprofile/AppData
  • C:Windows/SysWOW64config/systemprofile/Desktop(有时会错过,所以需要创建)。
  • C:\Programme(x86)\Microsoft.Net\。
  • C:\程序文件(x86)\Microsoft ASP.NET\

而另外,需要对Word和Excel进行一些DCOM配置。IIS应用用户需要权限来启动office应用等。

我不知道是否所有必要的依赖关系仍然存在与office 365。

下面是一个代码片段。

Function CreateDoc(ByVal docpath As String, ByVal docname As String, ByVal Document As String) As String

        Dim ff_name As String = ""
        Dim strFileName As String = Nothing
        Dim strExtension As String = Nothing
        Dim fileBytes As Byte() = Nothing


        Try

            Dim w = New Word.Application

            w.Visible = m_obj.Project.OfficeDisplay
            w.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone
            w.Documents.Open(docpath)

            SetRanges(Document)

            Dim i As Integer

            For Each ff As Word.FormField In w.ActiveDocument.FormFields
            .
            .
            .
asp.net office365 ms-office office-interop
1个回答
1
投票

先说说好消息。如果是和Office 2016一起工作的话,应该和Office 365也能很好的工作。现在的坏消息是,随着每月的演变,使用office interop的风险,在未来(几个月,或可能更多的年)创造问题,这是困难的,没有审计所有的解决方案,给你答案。下一步将是看看你的应用是否可以用offie.js的Web Add-in或使用Graph API来转换。但不幸的是,我们在interop中做的很多东西在现代解决方案中是不可能的......


1
投票

到目前为止,微软Office的桌面版还没有任何改变。但我建议使用Open XML SDK在服务器端生成文档,见 欢迎来到Open XML SDK 2.5 for Office。 更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.