Office-js Excel:获取新保存文件的文件名

时间:2018-06-28 22:35:04

标签: office-js excel-2016

如何获取新保存文件的文件名? 通常,我可以使用以下命令获取文件名:

Office.context.document.url

但是,当用户打开一个新工作簿时,它实际上没有文件名,而且奇怪的是,即使保存了该行代码,它们也无法正常工作。 相反,他们必须保存它,关闭,然后重新打开该代码的文件以读取其文件名。

保存后是否有刷新Office上下文的方法,或者有其他解决方法?

2 个答案:

答案 0 :(得分:0)

我们可以获取给定文档的文件路径。 getFilePropertiesAsync(options, callback)

var fileProperties = Office.context.document.getFilePropertiesAsync([, options], callback);
var fileUrl = fileProperties.url;
  • 如果您从文档库打开,您将获得文档的完整URL,包括文件名。
  • 如果您从本地驱动器打开文件,它将为您提供文档的完整路径(包括文件名)
  • 如果文件尚未保存,它将返回null。

答案 1 :(得分:0)

感谢@Nate Radebaugh指出:getFilePropertiesAsync(options, callback) 这样可以正常工作,并且能够提供新保存的文档的文件名。

由于我更喜欢​​异步/等待回调,因此我想将其添加到他的答案中:

async loadFileName() {
  return new Promise((resolve) => {
    Office.context.document.getFilePropertiesAsync(null, (res) => {
      if (res && res.value && res.value.url) {
        let name = res.value.url.substr(res.value.url.lastIndexOf('\\') + 1);
        resolve(name);
      }
      resolve('');
    })
  });
}

res.value.url返回整个文件的url /路径(C:\ Users \ username \ Desktop \ Book1.xlsx),由于我只需要文件名(Book1.xlsx),因此将其修剪掉结束。