Получение информации о документе с помощью надстройки Word Office 2013

Как получить информацию о документе, такую ​​как автор, дата создания и размер, используя надстройку Office Word 2013?

Кажется, что метод Document.getFilePropertiesAsync возвращает только URL, который является путем к файлу.

0 ответов

Странно, что разработчики не добавили размер файла getFilePropertiesAsync!

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

У меня это работает, у меня это есть в моем приложении:

  const [fileName, setFileName] = useState("");
  const [fileSize, setFileSize] = useState(0);
  useEffect(() => {
    Office.context.document.getFilePropertiesAsync(function(asyncResult) {
      if (asyncResult && asyncResult.value && asyncResult.value.url) {
        const name = asyncResult.value.url.replace(/^.*[\\\/]/, "");
        setFileName(name);
      }
    });
  }, []);

  useEffect(() => {
    if (fileName) {
      Office.context.document.getFileAsync(Office.FileType.Compressed, { sliceSize: 4194304 }, function(result) {
        if (result.status == Office.AsyncResultStatus.Succeeded) {
          // Get the File object from the result.
          const file = result.value;
          setFileSize(file.size);
          file.closeAsync(() => {});
        }
      });
    }
  }, [fileName]);  // Note: if both async file calls fire, one of them will fail.

Комментарий в конце относится к этой ошибке /questions/23860559/officecontextdocumentgetfileasync-vyidaet-oshibki/23860573#23860573. В if (fileName) проверка во втором хуке useEffect гарантирует, что вызов свойств файла завершится перед открытием файла для определения его размера.

После получения обоих вы сможете сохранить их в провайдере контекста и получить доступ к обоим атрибутам во всем приложении.

Другие вопросы по тегам