【问题标题】:exe saves file ok, except when launched via Excel macroexe 保存文件正常,除非通过 Excel 宏启动
【发布时间】:2014-01-24 10:10:52
【问题描述】:

我是新来的

我有一个带有 WPF 的 c# 程序

  • 生成一些 pdf
  • 保存在同一目录中
  • 然后打开pdf查看

-->直接启动exe时一切正常,没有错误。

但是当 .exe 由同一目录下的 excel 文件中的 excel 宏(shell 函数)启动时:excel 宏正常,程序启动正常,生成 pdf 正常,... pdf 自动打开和查看好的(所以让我觉得 pdf 被保存在某个地方)......当一切都关闭时......目录中没有 pdf!

这可能是一个明显的一般错误,但我无法弄清楚。 详细的帮助表示赞赏,因为我是新手 法布里斯

【问题讨论】:

    标签: c# wpf excel .net-assembly vba


    【解决方案1】:

    如果 Excel 使用不同的工作目录,文件将被放置在那里,而不是您期望的位置。如果是这种情况,可以使用下面的方法...

        public string GetFullSaveName(string pdfName)
        {
            string myDirectoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            if (myDirectoryName != null)
            {
                string fullSaveName = Path.Combine(myDirectoryName, pdfName);
                return fullSaveName;
            }
            throw new ApplicationException("Unable to locate assembly path");
        }
    

    此方法使用反射来找出您的应用程序在哪个目录中运行。它使用它来构建一个完全限定的路径,以便您的 pdf 文件将被写入一个可预测的位置。返回的路径是 应用程序 的工作目录,而不是 Excel 的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-30
      • 1970-01-01
      • 1970-01-01
      • 2021-11-21
      相关资源
      最近更新 更多