office.js测试版不适用于office 365桌面版,Microsoft 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)、人工智能(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 (https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:21:266567)上,测试版在旧的office 365版微软2016年Word MSO (16.0.9029.2253) 32位上运行良好。
编辑
( a)我使用的是带有最新office 365桌面版Microsoft 2016 MSO的beta CDN版本https://appsforoffice.microsoft.com/lib/beta/hosted/office.js (16.0.9126.2152),因为.open()方法在生产CDN中仍然不可用。但它在beta版中是可用的--参见:OpenSpec
基本上,我想创建和打开文档。为此,使用createdocument方法并传递base64encode文件。在找到和替换一些操作之后(例如,查找'Test‘并替换为'Hello’),然后使用.open()打开它。它一直工作到旧的office 365版本Microsoft 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);同样的代码,我已经通过恢复旧版本进行了二次检查,并且运行良好。要恢复旧版本,请执行以下步骤:
发布于 2018-04-19 03:40:02
好的,这个片段的问题是,在我们用来操作新创建的文档的beta版中,由于缺乏多平台兼容性,我们限定了这个功能的范围。因此,您的创建和开放需要在同一批。我们有一个bug需要修复,以便在某些平台上启用它,但它肯定还没有为今天的黄金时段做好准备。
https://stackoverflow.com/questions/49856599
复制相似问题