我想从 .NET 应用程序创建一个 Excel 电子表格,然后将 Excel.Application 实例当前目录设置为自定义文件夹。我想这样做,所以当用户单击 Excel 中的保存按钮时,另存为对话框已经位于正确的目录中。
我知道可以使用 VBA.FileSystem.ChDir 更改 Excel 实例中的当前目录,并使用 VBA 代码/宏在 Excel.Application 实例中执行此操作,如下所示:
从 C# .NET 创建 Excel 电子表格
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); excel.Workbooks.Add(); excel.Visible = true;
打开 Excel 电子表格后,按 ALT + F11。然后创建并运行以下宏
Sub SetChdir() Call FileSystem.ChDir("C:\To\My\Custom\Directory\") End Sub
在 Excel 中单击保存时,当前目录设置为使用 ChDir 设置的路径
我无法弄清楚,或者即使有可能,如何从.NET 创建这种行为。我厌倦了在 Excel 启动时使用 Excel.DefaultFilePath 来设置当前目录。但它有两个问题:
- 当 DefaultFilePath 设置为不同的值时,您需要重新启动 Excel 以使其对新的或打开的电子表格生效
- 我真的不想更改用户当前的 DefaultFilePath,因为它是 Excel 的全局值,而不是这个单独的电子表格。