如何通过自动化启动Excel时打开personal.xls工作簿?

时间:2012-03-06 20:01:25

标签: c# .net excel excel-vba vba

我已经明白,当通过自动化打开Excel时,默认情况下它不会打开其启动项,例如personal.xls工作簿。这对我的用户造成了问题,他们有时会通过我的应用程序打开Excel,然后继续将其用于其他工作。

不幸的是,以这种方式打开的Excel实例不包含其个人宏。他们必须关闭Excel并从我的应用程序外部重新打开它,以便它们的宏可用。

有没有办法让Excel在通过自动化启动时自动加载personal.xls工作簿?如果不是,打开该文件的最佳方法是什么,请记住它不应该对用户可见但是保持隐藏状态?

在创建对象和打开应用程序时,我没有找到任何选项来执行此操作

Excel.Application xlApp = new Excel.Application();

任何人都可以提供的任何建议或链接都​​将非常感激。我搜索并搜索了这方面的信息,但似乎没有人尝试过这种方法。我正在使用Excel 2007和.NET 2.0。

2 个答案:

答案 0 :(得分:2)

事实证明,简单地找到并打开用户的个人.xls(或者在新版本的Excel中创建的那些个人的xlsx)就是答案。

Excel.Application xlApp = new Excel.Application();
string filename = xlApp.StartupPath + "\\personal.xls";

xlApp.Workbooks.Open(filename, 0, false, 5, Missing.Value, Missing.Value, false,
    Missing.Value, Missing.Value, Missing.Value, false, Missing.Value, false,
    true, false);

personal.xls工作簿在后台隐藏(根据需要),并允许完全使用附加到它的所有宏。

一旦我知道要寻找什么,我在这篇文章中找到了一些很好的信息:Excel XLSTART problem with C#/.Net

答案 1 :(得分:0)

我不知道这是否是您要找的,但我在Word中遇到了相同的附加问题。我已经解决了,但可能不是你需要的。

使用自动化保存文件,然后使用进程启动它。

System.Diagnostics.Process.Start("excel.exe", "C:\\somefolder\\somefolder\\personal.xls");

我希望这有效。