【问题标题】:Word add-in: Get whole document but File.getSliceAsync method not returningWord 加载项:获取整个文档但 File.getSliceAsync 方法未返回
【发布时间】:2017-02-10 05:56:13
【问题描述】:

我正在创建 Office 加载项,但在 Word Online 中使用 javascript file.getFileAsync 方法时遇到问题(Word 2013 桌面版很好)。

我正在使用来自 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

我的代码看起来像这样...

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。结果函数从未被调用,控制台中也不会抛出任何错误。

感谢您提供的任何帮助!

【问题讨论】:

    标签: javascript ms-word office-js


    【解决方案1】:

    更新:此问题已修复并生效。请再试一次它现在必须工作。 谢谢!

    ---------------- 原始答案仅供参考 -------------------- ---------

    是的,Word Online 中现在有一个回归,导致代码无法成功运行。具体问题是 file.getSliceAsync 方法从不调用回调函数。这只发生在 TEXT 类型上,如果你想获取 docx 或 pdf 这应该可以。此问题将在几周内得到解决。

    如果您想获取文档的文本,您可以使用新的 Word API 查看此示例:

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

    希望这会有所帮助! 感谢您报告此问题! 胡安。

    【讨论】:

    • 谢谢胡安。关于你的 sn-p,我认为是因为它是新的 API,它不能在 Word 2013 上运行?
    • 这种回归让我想知道是否有很多人在使用这个旧的 Dialog 1.1 API - 也许大多数人已经迁移到新的 Word API?
    • 是的,它已修复。谢谢!
    • 嗨@JuanBalmori。我也有这个功能的问题。我正在尝试获取 Pdf 文档,但是所有页面都是空白的。您对此有所了解吗?
    • @Niko 您能否提供有关您遇到的平台和版本的更多详细信息?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    相关资源
    最近更新 更多