无法从SSIS包作业打开xlsm文件

我有一些SSIS作业打开一些Excel文件并操作它们。 作业中打开Excel文件的任务在每个作业中基本相同,只是指向一个不同的Excel文件。 这些工作除了一个以外都能正常工作。 但是,即使这个从包中手动运行,而不是在工作。

适用的代码是:

Dim reportLocation As String Dim oXL As Microsoft.Office.Interop.Excel.Application Dim oWB As Microsoft.Office.Interop.Excel.Workbook reportLocation = "\\testlocation\share\test.xlsm" 'Open Excel instance oXL = New Microsoft.Office.Interop.Excel.Application oXL.Visible = False 'Open the Excel file to edit oWB = oXL.Workbooks.Open(reportLocation) 'Error here 

收到的错误如下:

Microsoft Excel不能访问文件'\\ testlocation \ share \ test.xlsm'。 有几个可能的原因:

?文件名或path不存在。 •该文件正在被另一个程序使用。 ?试图保存的工作簿与当前打开的工作簿具有相同的名称。 在Microsoft.Office.Interop.Excel.Workbooks.Open(string文件名,对象更新链接,对象ReadOnly,对象格式,对象密码,对象WriteResPassword,对象IgnoreReadOnlyRecommended,对象源,对象分隔符,对象可编辑,对象通知,对象转换器,对象AddToMru,Object Local,Object CorruptLoad)at ScriptTask_ffa2c543b1224c3987d5764694df1079.ScriptMain.Main()

这是最新的软件包,是一个复制/粘贴作业,只是改变文件的位置。 我已经检查了所有的权限,这里没有问题。 我甚至允许访问“每个人”,看看是否是一个问题,但同样的错误发生。 该文件肯定存在于该位置,并且不被任何人打开。 什么可能的原因是,这个特定的文件在SQL作业中运行时无法打开,而是在包中手动运行时可以打开? 我也尝试改变作业,以完全pipe理员访问的用户身份通过​​代理运行软件包。 但仍然没有喜乐。

这对我来说不是一个有效的path:

\\testlocation\test.xlsm

您至less需要在主机名后面有一个共享名称:

\\testlocation\Share\test.xlsm

path如何查找您的工作文件? 我猜他们有份额。

在这里重温一些类似的问题的答案我能find解决scheme。 这可以在Microsoft Office中看到Excel无法访问文件'c:\ inetpub \ wwwroot \ Timesheet \ App_Data \ Template.xlsx'

我在服务器上创build了目录C:\Windows\SysWOW64\config\systemprofile\Desktop ,它现在奇迹般地工作。 我昨天看了这个,认为目录已经存在,所以没有实现这个解决scheme。 但今天再看看它显示该目录不存在,并创build它修复它。

现在的问题是,为什么这个工作?! 但这可能是另一个问题。