[英]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.