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

标签 c# .net excel vba

我了解到,当通过自动化打开 Excel 时,默认情况下它不会打开其启动项,例如 personal.xls 工作簿。这给我的用户带来了问题,他们有时会通过我的应用程序打开 Excel,然后继续使用它进行其他工作。

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

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

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

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

任何人都可以提供任何建议或链接,我们将不胜感激。我已经搜索并搜索了这方面的信息,但似乎没有人尝试过解决它的方法。我使用的是 Excel 2007 和 .NET 2.0。

最佳答案

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

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

关于c# - 如何在通过自动化启动 Excel 时打开 personal.xls 工作簿?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9590960/

相关文章:

c# - 调用 native 函数时最后一个参数出现损坏

c# - 调度程序 BeginInvoke 语法

.net - 如何在 Spring.net 中注入(inject) Predicate 和 Func

java - 在 AWS Lambda 上解析 Excel 文档

c# - 如何使 ServiceStack MiniProfiler 与 EF 一起使用?

c# - 使用 Swagger 向端点添加注释

c#接口(interface),抽象类,强制继承类不是抽象类

c# - 如何为我的内部 winform 应用程序实现自动更新策略

java - 使用 SXSSFWorkbook 创建具有多个工作表的 Excel 工作簿

Excel VBA : can delete validation but not add new one