Получение информации о документе с помощью надстройки 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 гарантирует, что вызов свойств файла завершится перед открытием файла для определения его размера.
После получения обоих вы сможете сохранить их в провайдере контекста и получить доступ к обоим атрибутам во всем приложении.