2016-10-14 1 views
1

Беты библиотеки: https://appsforoffice.microsoft.com/lib/beta/hosted/office.jsСлова: Могу не InsertText() в Cell.body

Word, 2016 Управление инсайдера Быстрого, версия 1610 (Build 7416.1000)


У меня есть документ Word который имеет простую таблицу в нем (я использую создание таблицы с несколькими строками и столбцами каждый раз, когда я тестирую, никаких существующих данных), и я выполняю повторение строк, пытаясь заполнить ячейки текстом.

Я получаю эту ошибку, когда я пытаюсь это:

Error: ItemNotFound: ItemNotFound 
Debug info: {"errorLocation":"TableRowCollection.getItem"} 

Мое приложение является демонстрационной WordWebAddin созданный MS Visual Studio, и мой код выглядит следующим образом:

Word.run(function (context) { 
     var tables = context.document.body.tables 
     tables.load({ expand:"rows/cells/items/body/text"}) 

     return context.sync().then(function() { 
      var rows = tables.items[0].rows 
      rows.items[1].cells.items[1].body.insertText("ryanasoefijasojef", Word.InsertLocation.replace) 

      return context.sync(); 
     }) 
    }) 
    .catch(errorHandler); 

Я попробовал множество механизмов для навигации к телу клетки - если я использую cells.items[0].body.text Я получаю тело текста ячейки обратно успешно, поэтому я могу использовать ячейки так, как я ожидал. Но независимо от того, что я делаю, я получаю исключение itemNotFound. Я также пробовал различные значения (или не значения для параметра местоположения вставки, включая (ничего), ссылки на объекты InsertLocation и строки «replace» и т. Д. Определенно, я неправильно использую API, но я считаю, я использую его правильно в соответствии с Документами.

редактировать Я хотел бы какой-либо подтверждение. либо, что я делаю это правильно или неправильно, или что он не работает для вас, или что-то. Любой help оценивается!

+1

У меня такая же проблема. Я не могу вставить текст внутри ячейки ... Я попытался добавить текст, передав строку [] в свойство «values» в «Word.Row» и возникла та же проблема. – C1rdec

+1

Здравствуйте, Райан, мы действительно думаем, что есть проблема с установкой Office.js для вашей конкретной сборки, мы расследуем все правильно, обновим этот вопрос с ответом, как только он станет доступен. –

+1

Просто чтобы убедиться, что это именно так, мы обновим предварительный просмотр Office.js через несколько дней, чтобы ваш код работал без проблем. к тому времени я обновлю ответ, включая образец о том, как изменить конкретные значения ячеек. Спасибо за попытку просмотра !!! –

ответ

1

Моя рекомендация вам использовать getCell method of the Table object.Этот метод принимает нулевые координаты конкретной ячейки, которые вам нужны в таблице, тогда вы можете легко получить доступ к телу ячейки. вне пример пример кода, также обратите внимание, что вам не нужно расширять что-либо, чтобы этот код работал.

Кстати, вам, возможно, придется вернуться к августовской вилке (16.7369.XXX), так как в Office.js внесены изменения, внесенные в сентябрьскую вилку, мы переименовали несколько методов, наш план - обновить Office. js на предварительном просмотре CDN, как только сентябрьские корабли вилки. Спасибо за использование предварительного просмотра!

Word.run(function (context) { 
 
      var tables = context.document.body.tables 
 
      tables.load() 
 
      return context.sync().then(function() { 
 
       tables.items[0].getCell(0, 0).body.insertText("ryanasoefijasojef", Word.InsertLocation.replace) 
 
       return context.sync(); 
 
      }) 
 
     }) 
 
    .catch(function (e) { 
 
       app.showNotification(e.message); 
 
      }) 
 
     
 
    }

Смежные вопросы