【问题标题】:Set Current Directory in Excel.Application via .NET Office PIA通过 .NET Office PIA 在 Excel.Application 中设置当前目录
【发布时间】:2012-01-09 23:28:37
【问题描述】:

我想从 .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 的全局值,而不是这个单独的电子表格。

【问题讨论】:

  • 您不能使用互操作库更改 Excel 的工作目录。宏是最好的。

标签: .net excel vba filesystems pia


【解决方案1】:

还有另一种方法。

excel.ExecuteExcel4Macro("DIRECTORY(\"C:\\To\\My\\Custom\\Directory\")");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多