Метод Word insertOoxml, возвращающий ошибку: неизвестно для всех входных данных - PullRequest
0 голосов
/ 30 августа 2018

У меня есть существующее решение Word Add-In, которое долгое время работало хорошо и теперь не может вставлять OOXML-контент в документы Word. Пытаясь разобраться в этом, я не могу заставить метод insertOoxml работать ни при каких обстоятельствах.

Воспроизвести:

        await Word.run(async (context) => {
            context.document.getSelection().insertOoxml(theOoxml, 'Start');
            await context.sync();
        });

Где theOoxml может быть любой допустимой строкой Ooxml. Справочный пример, который я использовал:

<pkg:package xmlns:pkg="http://schemas.microsoft.com/office/2006/xmlPackage">
  <pkg:part pkg:name="/_rels/.rels" pkg:contentType="application/vnd.openxmlformats-package.relationships+xml" pkg:padding="512">
    <pkg:xmlData>
      <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
        <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml" />
      </Relationships>
    </pkg:xmlData>
  </pkg:part>
  <pkg:part pkg:name="/word/document.xml" pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml">
    <pkg:xmlData>
      <w:document xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:cx="http://schemas.microsoft.com/office/drawing/2014/chartex" xmlns:cx1="http://schemas.microsoft.com/office/drawing/2015/9/8/chartex" xmlns:cx2="http://schemas.microsoft.com/office/drawing/2015/10/21/chartex" xmlns:cx3="http://schemas.microsoft.com/office/drawing/2016/5/9/chartex" xmlns:cx4="http://schemas.microsoft.com/office/drawing/2016/5/10/chartex" xmlns:cx5="http://schemas.microsoft.com/office/drawing/2016/5/11/chartex" xmlns:cx6="http://schemas.microsoft.com/office/drawing/2016/5/12/chartex" xmlns:cx7="http://schemas.microsoft.com/office/drawing/2016/5/13/chartex" xmlns:cx8="http://schemas.microsoft.com/office/drawing/2016/5/14/chartex" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:aink="http://schemas.microsoft.com/office/drawing/2016/ink" xmlns:am3d="http://schemas.microsoft.com/office/drawing/2017/model3d" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" xmlns:w16cid="http://schemas.microsoft.com/office/word/2016/wordml/cid" xmlns:w16se="http://schemas.microsoft.com/office/word/2015/wordml/symex" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" mc:Ignorable="w14 w15 w16se w16cid wp14">
        <w:body>
          <w:p>
            <w:r>
                <w:t>
                    Hey there
                </w:t>
            </w:r>
          </w:p>
        </w:body>
      </w:document>
    </pkg:xmlData>
  </pkg:part>
</pkg:package>

Но также пробовали другие справочные примеры: https://docs.microsoft.com/en-us/office/dev/add-ins/word/create-better-add-ins-for-word-with-office-open-xml

Результаты:

word-web-16.00.debug.js: 11162 Uncaught (в обещании) Ошибка: неизвестно в новой RuntimeError (word-web-16.00.debug.js: 11162) at RequestContext.ClientRequestContext.processRequestExecutorResponseMessage (word-web-16.00.debug.js: 13713) на word-web-16.00.debug.js: 13620

Пробовал это на разных арендаторах, в браузерах, и это сводит меня с ума. Если это работает для вас, пожалуйста, дайте мне знать ваши общие настройки / настройки.

Спасибо.

UPDATE:

Чтобы избежать вопросов о достоверности самого XML, следующий код получает OOXML для текущего выбора, а затем дублирует его после выбора - также происходит сбой с той же ошибкой.

await Word.run(async (context) => {

   var sourceRange = context.document.getSelection();
   var contentToCopy = sourceRange.getOoxml();
   await context.sync();

   sourceRange.insertOoxml(contentToCopy.value, 'After');
   await context.sync();
});

Надеюсь, здесь есть что-то простое, чего мне не хватает Любые предложения / обходные пути для вставки любого Ooxml фрагмента приветствуются.

ОБНОВЛЕНИЕ 2018-09-04: Microsoft признала проблему и собирается исправить ее.

ОБНОВЛЕНИЕ 2018-09-12: InsertOoxml снова работает, хотя у меня нет подтверждения от Microsoft относительно исправления.

1 Ответ

0 голосов
/ 12 сентября 2018

InsertOoxml теперь снова работает, как и прежде.

Я еще не получил подтверждение от службы поддержки Microsoft относительно исправления, но все мои клиенты, похоже, снова работают.

Спасибо Хуану Балмори и тем, кто работает в команде расширяемости, за исправление.

J.

...