使用system.diagnostics.process打开excel宏

时间:2013-01-18 17:22:56

标签: excel iis process.start

我们在iis 6.0上托管了一个Web服务,它打开一个指定excel模板文件。并且宏“t.xla”应该在excel打开后从数据库中检索数据,为客户端下载做好准备。 问题是宏似乎没有运行。代码如下(我现在不在公司,所以我只写伪代码):

System.Diagnostics.ProcessStartInfo pStartInfo = new ProcessStartInfo(excelAppPath, excelTemplatePath);
//nomal window is in debug mode, createNoWindow will be used in product envirionment
pStartInfo.WindowStyle = ProcessWindowStyle.Nomal;

System.Diagnostics.Process process = new Process();
process.Start(pStartInfo);
log.Info("Excel Process was started");

当我运行此代码时, 1)可以看到excel.exe是从任务管理器启动的。 2)excel.exe在桌面上没有创建窗口,有人说它应该是,因为iis有限。 3)我确定宏“t.xla”没有运行,因为没有应该由宏写入的日志。当我双击任何一个excel模板时,将找到日志。

现在iis工作进程在本地SYSTEM帐户中运行,并且已启用IIS Admin Service与桌面交互。此外,每个人都可以写入模板文件和日志文件的目录

有人能给我一些建议吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可能希望使用本地系统以外的其他帐户 - 这样您就可以以该帐户登录并尝试相同的操作来查看是否有任何对话框或错误弹出,这可能会阻止事情进一步发展,例如宏安全设置。 Microsoft不支持以这种方式运行Excel,但这并不意味着您无法使其正常运行。查看这篇文章,它涵盖了更多要考虑的细节:http://support.microsoft.com/kb/257757