1

我想从 .NET 应用程序创建一个 Excel 电子表格,然后将 Excel.Application 实例当前目录设置为自定义文件夹。我想这样做,所以当用户单击 Excel 中的保存按钮时,另存为对话框已经位于正确的目录中。

我知道可以使用 VBA.FileSystem.ChDir 更改 Excel 实例中的当前目录,并使用 VBA 代码/宏在 Excel.Application 实例中执行此操作,如下所示:

  1. 从 C# .NET 创建 Excel 电子表格

    Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
    excel.Workbooks.Add();
    excel.Visible = true;  
    
  2. 打开 Excel 电子表格后,按 ALT + F11。然后创建并运行以下宏

    Sub SetChdir()
       Call FileSystem.ChDir("C:\To\My\Custom\Directory\")
    End Sub
    
  3. 在 Excel 中单击保存时,当前目录设置为使用 ChDir 设置的路径

我无法弄清楚,或者即使有可能,如何从.NET 创建这种行为。我厌倦了在 Excel 启动时使用 Excel.DefaultFilePath 来设置当前目录。但它有两个问题:

  • 当 DefaultFilePath 设置为不同的值时,您需要重新启动 Excel 以使其对新的或打开的电子表格生效
  • 我真的不想更改用户当前的 DefaultFilePath,因为它是 Excel 的全局值,而不是这个单独的电子表格。
4

1 回答 1

1

还有另一种方法。

excel.ExecuteExcel4Macro("DIRECTORY(\"C:\\To\\My\\Custom\\Directory\")");
于 2012-10-19T05:57:44.367 回答