Надстройка Word - Document.open не работает в бета-версии

Бета-версия office.js не работает с настольной версией Office 365 32-разрядная версия Microsoft Word 2016 MSO (16.0.9126.2152). Document.open () выдает ошибку:

Document.open, OfficeExtension.Error

GeneralException: GeneralException

в анонимной функции (https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:21:222335) в ai (https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:21:267964 ) по адресу ft (https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:21:268051) в d (https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:21:267871 ) в c (h ttps: //appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js: 21: 266567) Бета-версия нормально работала в старой версии Office 365 Microsoft Word 2016 MSO (16.0 .9029.2253) 32-бит.

Изменить

а) Я использую бета-версию CDN https://appsforoffice.microsoft.com/lib/beta/hosted/office.js с последней настольной версией Office 365 Microsoft Word 2016 MSO (16.0.9126.2152), поскольку метод .open () по-прежнему недоступен в производственной CDN. Но он доступен в бета-версии: https://github.com/OfficeDev/office-js-docs/tree/WordJs_OpenSpec

б) В основном я хочу создать и открыть документ. Для этого используется метод createdocument и передается файл base64encode. Затем после некоторых операций поиска и замены (например, поиск «Test» и замена на «Hello World») и его открытие с помощью .open (). Работал до старой версии Office 365 Microsoft Word 2016 MSO (16.0.9029.2253).

Word.run(function (context) {

    var myNewDoc = context.application.createDocument(base64File);
    var searchResults = '';

    return context.sync()
            .then(function () {
                searchResults = myNewDoc.body.search('{{Test}}', { matchCase: true });
                context.load(searchResults);
            })
            .then(context.sync)
            .then(function () {
                for (var i = 0; i < searchResults.items.length; i++) {
                    searchResults.items[i].insertText('Hello World', Word.InsertLocation.replace);
                }
            })
            .then(context.sync)
            .then(function () {
                myNewDoc.open();
            });
})
.catch(errorHandler);

Тот же код я дважды проверил, восстановив старую версию, и работал нормально. Чтобы восстановить старую версию, выполните следующие действия:

  1. Открытое слово
  2. Перейдите в Файл -> Учетная запись -> Обновления Office. Отключить обновления
  3. Щелкните правой кнопкой мыши cmd.exe и выберите Запуск от имени администратора. В командной строке выполните следующие команды:

    а. cd% programfiles% \ Common Files \ Microsoft Shared \ ClickToRun

    б. officec2rclient.exe / обновление пользователя updatetoversion = 16.0.9029.2253

  4. После этого убедитесь, что офисная версия обновлена ​​до 16.0.9029.2253.


person jsu    schedule 16.04.2018    source источник
comment
2 вопроса к вам: а) вы пробовали производственный CDN? мы уже отправили API в производство. б) можете ли вы предоставить краткий фрагмент кода, воспроизводящий вашу проблему? так мы сможем вам лучше помочь. Благодарность!   -  person Juan Balmori    schedule 17.04.2018
comment
Спасибо, @JuanBalmori. См. Ответы выше для получения дополнительной информации.   -  person jsu    schedule 17.04.2018


Ответы (1)


Хорошо, проблема с этим фрагментом заключается в том, что в бета-версии, которую мы использовали, чтобы разрешить манипулирование вновь созданным документом, мы ограничили эту возможность из-за отсутствия совместимости с несколькими платформами. поэтому ваши create и open должны быть в одной партии. У нас есть ошибка, которую нужно исправить, чтобы включить это на определенных платформах, но, конечно, она еще не готова к использованию в прайм-тайм сегодня.

person Juan Balmori    schedule 19.04.2018
comment
Привет @JuanBalmori, не очень понятно. Значит, над вновь созданным документом больше нет манипуляций или в нем есть ошибка? Создание и открытие в одном пакете работали нормально, но как найти и заменить в этом документе, прежде чем открывать его? Не могли бы вы предоставить фрагмент кода. Спасибо. - person jsu; 19.04.2018
comment
это больше не поддерживается. он был только в CDN предварительного просмотра, и мы удалили его из-за отсутствия паритета с другими платформами. - person Juan Balmori; 23.04.2018