我有一个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应用程序用户需要拥有以下文件夹的所有权:
而另外,需要对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
.
.
.
先说说好消息。如果是和Office 2016一起工作的话,应该和Office 365也能很好的工作。现在的坏消息是,随着每月的演变,使用office interop的风险,在未来(几个月,或可能更多的年)创造问题,这是困难的,没有审计所有的解决方案,给你答案。下一步将是看看你的应用是否可以用offie.js的Web Add-in或使用Graph API来转换。但不幸的是,我们在interop中做的很多东西在现代解决方案中是不可能的......
到目前为止,微软Office的桌面版还没有任何改变。但我建议使用Open XML SDK在服务器端生成文档,见 欢迎来到Open XML SDK 2.5 for Office。 更多信息。