如何使用Office word -dad 2013获取作者,创建日期和大小等文档信息?
Document.getFilePropertiesAsync方法似乎只返回作为文件路径的URL。
答案 0 :(得分:0)
很奇怪,开发人员没有为getFilePropertiesAsync
添加文件大小!
幸运的是,getFileAsync
(link)提供了文件大小。您应该可以调用它来简单地获取大小,保存该属性并关闭文件。
这对我有用,我在我的App组件中拥有它:
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.
最后的注释涉及此错误https://stackoverflow.com/a/28743717/1467365。第二个useEffect钩子中的if (fileName)
检查可确保在打开文件以获取文件大小之前完成文件属性调用。
两者都提取后,您应该能够将它们存储在Context提供程序中,并在整个应用程序中访问这两个属性。