Mic*_*nis 4 c# excel-2007 excel-interop excel-2010
Excel Interop正在从已处理的文件中删除图像.
我正在使用Excel Interop,没有第三方组件(我知道).工作流程是 - 创建文件(模板)的副本(目标),填充单元格,更改单选按钮状态
在我的开发机器上,目标文件看起来很棒 - 所有内容都已填充,图像存在.注意:在我的开发机器上,我正在运行VS2010 IDE中的代码.
在生产机器上 - 一切都已填充,但图像不存在.相反,会出现以下错误: NB:在生产计算机上,它作为服务运行,具有本地服务帐户.
"在文件中找不到关系ID为rId1的图像部分"

通过以下代码打开整个工作簿:
var workbook = workbooks.Open(targetPath
0, false, 5, Type.Missing, Type.Missing, false, XlPlatform.xlWindows, "",
true, false, 0, true, false, false);
Run Code Online (Sandbox Code Playgroud)
请注意,代码中不会处理带有图像的工作表.
工作簿(和个人工作表)受到保护.但是,受保护的模板在开发中正确处理,但不在生产中.我不认为保护与它有任何关系(但谁知道,对吧?这是Interop.呃).
该文件由另一方创建,所有组件(即图像)都位于.xslm结构中,而不是作为另一个服务器的链接.
我已经验证图像在模板文件中的生产计算机上可见,但不在处理过的文件中.
为了确认这不是在制作中打开文件的问题,我通过电子邮件发送了一份副本,图像仍然不存在.
我还确认,在我的开发机器上,处理过的文件确实有可见的图像.
我不保护工作表,并解压缩文件结构..jpg文件确实不存在于生产机器的已处理目标中.
还有一个注意事项 - Office 2010安装在我的开发计算机上,但是Office 2007安装在生产计算机上.结果,我正在使用Office 12 Interop.在任一环境中都不会生成运行时错误.
我正在使用Interop(而不是OpenXml库),因为存在必须填充的ActiveX控件.但请注意,没有任何ActiveX控件存在任何问题 - 它们工作正常.它只是从处理过的文件中消失的图像文件(它们在模板文件中呈现得很好).
更新说明:还有其他四个图像文件,全部.emf在不同的工作表上; 他们都被剥夺了.
正如评论中所解释的那样(最终是对问题的编辑),代码在生产中作为服务运行,使用本地服务帐户.
我现在不确定为什么选择这个帐户 - 这是我在研究让Interop作为服务正常运行时发现的东西?
但是,一旦我从本地服务帐户切换到本地系统帐户(并选中"允许服务与桌面交互"),它就可以工作.自动的.
services.msc可能不需要"允许服务与桌面交互"; 关于自动化Interop的其他说明建议需要其他桌面设置,但是我进行了安装,其中设置了先决条件,但未选中此值; 应用仍然有效......

| 归档时间: |
|
| 查看次数: |
5920 次 |
| 最近记录: |