【发布时间】:2012-03-20 03:01:48
【问题描述】:
最近 .Net 1.1 的一个旧项目正在迁移到 .Net4.0。该项目正在使用以下方法打开excel文件:
Process process = new Process();
try
{
process.StartInfo.FileName = marco_file;
process.Start();
}
catch(Exception)
{
}
finally
{
process.Close();
}
marco_file 是带有宏的 excel 文件的路径,例如 "C:\project\test.xls" 当excel文件打开时,其中的宏将立即运行。
在 .Net1.1 中,代码和宏都运行良好。在 .Net4 中,代码无异常运行。但是宏不起作用。
为什么excel文件中的宏没有运行?
我的环境是Win7 64bit。办公室 2010 64 位。 IIS 7.5
谢谢
当我更改为以下代码并运行调试模式时
process.StartInfo.FileName = marco_file;
if (process.Start())
{
Debug.WriteLine("-->start ");
}
else
{
Debug.WriteLine("-->failed ");
}
结果是进入else块,表示进程启动失败。
有人知道为什么吗?
【问题讨论】:
-
你确定你的代码运行没有任何异常吗?你好像在吃它们。
-
去掉catch{}再试一次,看看有没有抛出异常以及是什么异常。
-
试着把它写成 catch(Exception ex) { // print exception } 而不是 catch(Exception)
-
问题解决了!
标签: c# .net excel process.start