[英]Word add-in: Get whole document but File.getSliceAsync method not returning
我正在创建一个Office加载项,我在使用Word Online中的javascript file.getFileAsync方法时遇到问题(Word 2013桌面很好)。
我正在使用github的示例代码...
我的代码看起来像这样......
function getFile() {
Office.context.document.getFileAsync(Office.FileType.Text,
{ sliceSize: 65536},
function (result) {
if (result.status == Office.AsyncResultStatus.Succeeded) {
// Get the File object from the result.
var myFile = result.value;
var state = {
file: myFile,
counter: 0,
sliceCount: myFile.sliceCount
};
getSlice(state);
}
});
}
function getSlice(state) {
state.file.getSliceAsync(state.counter, function (result) {
if (result.status == Office.AsyncResultStatus.Succeeded) {
sendSlice(result.value, state);
state.file.closeAsync();
}
else if(result.status == 'failed')
state.file.closeAsync();
});
}
在调用file.getSliceAsync之前,数据看起来很好 - myFile.sliceCount是1.结果函数永远不会被调用,并且控制台中不会抛出任何错误。
感谢您的任何帮助,您可以提供!
更新:此问题已修复并生效。 请再试一次它现在必须工作。 谢谢!
---------------- 原始答案仅供参考 ----------------------------
是的,Word Online中现在有一个回归,阻止代码成功运行。 具体问题是file.getSliceAsync方法永远不会调用回调函数。 这只发生在TEXT类型中,如果你想获得docx或pdf,这应该可以正常工作。 这个问题将在几周内解决。
如果您想获取文档的文本,可以使用新的Word for Word,则可以选择以下示例:
Word.run(function(context) { var myBody = context.document.body; context.load(myBody); return context.sync() .then(function(){ console.log(myBody.text); }); });
希望这可以帮助! 感谢您报告此问题! 胡安。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.