office.js测试版无法使用Office 365桌面版Microsoft Word 2016 MSO(16.0.9126.2152)32位。 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) 在英尺(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(https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:21:266567) 测试版在旧版Office 365版Microsoft Word 2016 MSO(16.0.9029.2253)32位中运行良好。
修改
a)我正在使用beta 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
b)基本上我想创建并打开文档。为此使用createdocument方法并传递base64encode文件。经过一些查找和替换操作(例如,找到'Test'并替换为'Hello World')并使用.open()打开它。它一直工作到旧办公室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);
相同的代码我通过恢复旧版本进行了双重检查并且工作正常。要恢复旧版本,请按照以下步骤操作:
右键单击“cmd.exe”,然后单击“以管理员身份运行”。在命令提示符下运行以下命令:
一个。 cd%programfiles%\ Common Files \ Microsoft Shared \ ClickToRun
湾officec2rclient.exe / update user updatetoversion = 16.0.9029.2253
完成后,确认办公室版本已更新为16.0.9029.2253。
答案 0 :(得分:0)