Office-js Excel: получить имя файла вновь сохраненного файла - PullRequest
0 голосов
/ 29 июня 2018

Как я могу получить имя файла недавно сохраненного файла? Обычно я могу получить имя файла, используя:

Office.context.document.url

Однако, когда пользователь открывает новую рабочую книгу, у нее действительно нет имени файла, и, как ни странно, эта строка кода не работает даже после сохранения. Вместо этого они должны сохранить его, закрыть и снова открыть файл для этого кода, чтобы прочитать их имя файла.

Есть ли способ обновить контекст Office после сохранения или другой обходной путь для этого?

Ответы [ 2 ]

0 голосов
/ 15 июня 2019

Спасибо @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), я обрежу его до конца .

0 голосов
/ 10 апреля 2019

Мы можем получить путь к файлу для данного документа. getFilePropertiesAsync(options, callback)

var fileProperties = Office.context.document.getFilePropertiesAsync([, options], callback);
var fileUrl = fileProperties.url;
  • Если вы открыли из библиотеки документов, вы получите полный URL-адрес документа, включая имя файла.
  • Если вы открыли файл с локального диска, он даст вам полный путь к документу (включая имя файла)
  • Если файл еще не был сохранен, он вернет ноль.
...