C# 如何在通过自动化启动Excel时打开personal.xls工作簿?
我逐渐了解到,通过自动化打开Excel时,默认情况下不会打开其启动项,例如personal.xls工作簿。这给我的用户带来了一个问题,他们有时会通过我的应用程序打开Excel,然后在以后的其他工作中继续使用它 不幸的是,以这种方式打开的Excel实例不包含其个人宏。他们必须关闭Excel并从我的应用程序外部重新打开它,这样他们的宏才可用 通过自动化启动personal.xls工作簿时,是否有办法使Excel自动加载该工作簿?如果不是,那么打开该文件的最佳方式是什么?请记住,该文件不应该对用户可见,而是保持隐藏状态 在创建对象和打开应用程序时,我没有找到任何选项来执行此操作C# 如何在通过自动化启动Excel时打开personal.xls工作簿?,c#,.net,excel,vba,C#,.net,Excel,Vba,我逐渐了解到,通过自动化打开Excel时,默认情况下不会打开其启动项,例如personal.xls工作簿。这给我的用户带来了一个问题,他们有时会通过我的应用程序打开Excel,然后在以后的其他工作中继续使用它 不幸的是,以这种方式打开的Excel实例不包含其个人宏。他们必须关闭Excel并从我的应用程序外部重新打开它,这样他们的宏才可用 通过自动化启动personal.xls工作簿时,是否有办法使Excel自动加载该工作簿?如果不是,那么打开该文件的最佳方式是什么?请记住,该文件不应该对用户可见
Excel.Application xlApp = new Excel.Application();
任何人能提供的任何建议或链接都将不胜感激。我已经搜索了很多关于这方面的信息,但似乎没有人试图绕过它。我使用的是Excel 2007和.NET 2.0。我不知道这是否是您想要的,但我在Word中遇到了相同的附加组件问题。我已经解决了,但可能不是你需要的 自动保存文件,然后使用进程启动它
System.Diagnostics.Process.Start("excel.exe", "C:\\somefolder\\somefolder\\personal.xls");
我希望这能奏效。事实证明,简单地查找并打开用户的personal.xls(或在较新版本的Excel中创建的personal.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工作簿在后台隐藏打开(根据需要),并允许充分使用附加到它的所有宏
一旦我知道要寻找什么,我在这篇文章中找到了一些很好的信息:你可能在寻找VBA而不是通过C#实现的自动化。当Excel通过自动化启动时是否加载了加载项?@squelos因为我的应用程序是用C#编写的,我别无选择,只能尝试通过同样的方法实现自动化。@Cutter否,我相信加载项没有加载。用户的personal.xls文件通常已经存在,因此我无法在没有找到它之前保存它,但打开它就是答案