2016-11-29 1 views
0

Я пытаюсь добавить таблицу внутри контроллера контента в мое приложение панели задач OFFICE365. Это код, который я использую.Добавить таблицу внутри Контроллера содержимого с помощью javaScript

function createContentControlForTable(tableName, number_columns, number_header, number_body, number_footer) { 
 
     Word.run(function (context) { 
 
      var number_cells = number_header + number_body + number_footer; 
 
      var range = context.document.getSelection(); 
 
    
 
      var myContentControl = range.insertContentControl(); 
 
      myContentControl.tag = "Table name:" + tableName; 
 
      myContentControl.title = "Table name:" + tableName; 
 
      myContentControl.appearance = "Tags"; 
 
      myContentControl.style = "Normal"; 
 
      myContentControl.insertText("", 'replace'); 
 
      myContentControl.cannotEdit = false; 
 
      myContentControl.insertTable(2, 2, Word.InsertLocation.end); 
 
     
 
      context.load(myContentControl, 'id'); 
 

 
      return context.sync().then(function() {    
 
       myContentControl.tag = myContentControl.tag + " id:" + myContentControl.id; 
 
       myContentControl.title = myContentControl.title + " id:" + myContentControl.id; 
 
       showNotification("Table", "Table added successfuly"); 
 
       console.log('Created content control with id: ' + myContentControl.id); 
 

 
       return context.sync().then(function() { 
 
        console.log('Inserted a table in the content control.'); 
 
       }); 
 
      
 
      
 
      }).catch(function (error) { 
 
       console.log('Error: ' + JSON.stringify(error)); 
 
       if (error instanceof OfficeExtension.Error) { 
 
        console.log('Debug info: ' + JSON.stringify(error.debugInfo)); 
 
       } 
 
      }); 
 
      
 
     });

Здесь я использую 'contentControlObject.insertTable(rowCount, columnCount, insertLocation, values);' для моей задачи.

Как метод 'insertTable' не работает с https://appsforoffice.microsoft.com/lib/1/hosted/office.js, я использовал бета-версию (https://appsforoffice.microsoft.com/lib/beta/hosted/office.js) для Office.js для своего приложения.

Но проблема в том, когда выполнить линию 'return context.sync().then(function(){', это дает ошибку говоря,

ItemNotFound: ItemNotFound\n at Anonymous function (https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:19:188232)\n at pi (https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:19:210600)\n at ht (https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:19:210687)\n at g (https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:19:210507)\n at l (https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:19:209093) 

Я appereciate, если кто-нибудь может мне помочь с этим. Спасибо.

ответ

0

Я использовал бета-версию JavaScript API для слова, и эта проблема возникла из-за некоторой проблемы с API, и теперь она была разрешена. В настоящее время

insertTable(rowCount: number, columnCount: number, insertLocation: string, values: string[][]) 

работает должным образом, как ожидалось.

Значение вставки может быть «Start», «End», «Before» или «After», а значения опциональны (дополнительный 2D-массив)

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