将 Excel 转换为 HTM 文件作为服务器上的计划任务

时间:2021-01-08 22:23:12

标签: excel vb.net office-interop

我有一个程序可以从不同的文件类型进行所有类型的转换。当程序在个人计算机甚至 Windows 服务器上手动执行时,将文件从 Excel 转换为 HTM 的功能可以正常运行。

当程序被安排为 Windows 服务器上的任务时,会发生此问题。在 Excel.Workbooks.Close() 中抛出错误 0x800AC472。

我的假设是,这是服务器上的许可问题,它会引发 Office 激活对话框,导致程序无法关闭。

我想用与服务器端自动化兼容的包/库替换使用 Office Interop,以进行此类转换。有哪些库支持此要求?

我目前在 Visual Basic 控制台应用程序中使用 Office Interops 处理转换。

Private Shared objXL As Excel.Application

GC.Collect()

    Dim objWB As Excel.Workbook

    Try

        objWB = objXL.Workbooks.Open(fileSource)

        objWB.SaveAs(fileDestination, Excel.XlFileFormat.xlHtml, , , False, False)
      
        objWB.Close(Nothing, Nothing, Nothing)

    Catch ex As Exception
        Throw ex
    End Try

    objXL.Workbooks.Close()
    System.Runtime.InteropServices.Marshal.ReleaseComObject(objWB)
    objWB = Nothing

GC.Collect() 

1 个答案:

答案 0 :(得分:0)

创建以下目录修复了以下问题:在服务器上运行办公自动化会创建对话框,因此无人值守执行失败,因为 Office 应用程序希望与真实用户交互并因此关闭这些对话框。

C:\Windows\SysWOW64\config\systemprofile\Desktop

C:\Windows\System32\config\systemprofile\Desktop

我的操作系统 Windows Server 2012 R2 Standard

相关问题