简体   繁体   中英

Word add-in: Get whole document but File.getSliceAsync method not returning

I'm creating an Office Add-in and am having trouble with the javascript file.getFileAsync method in Word Online (Word 2013 desktop is fine).

I'm using sample code from github...

https://github.com/OfficeDev/office-js-docs/blob/master/docs/word/get-the-whole-document-from-an-add-in-for-powerpoint-or-word.md

My code looks like this...

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();
        });
    }

Before calling file.getSliceAsync the data looks good - myFile.sliceCount is 1. The result function is never called and no errors are thrown in the console.

Thanks for any help you can provide!

UPDATE: this issue is fixed and live. Please try it again it must work now. thanks!

---------------- ORIGINAL ANSWER JUST FOR REFERENCE ----------------------------

Yes, there is a regression right now in Word Online preventing the code to run successfully. The specific issue is that the file.getSliceAsync method is never calling the call-back function. This only happens with the TEXT type, if you want to get the docx or pdf this should work ok. This issue will be fixed in a couple of weeks.

You have an alternative if you want to get the text of the document you can use the new APIs for Word check out this sample:

 Word.run(function(context) { var myBody = context.document.body; context.load(myBody); return context.sync() .then(function(){ console.log(myBody.text); }); }); 

Hope this helps! Thanks for reporting this issue! Juan.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM