Невозможно создать таблицу в веб-надстройке Excel - PullRequest
1 голос
/ 24 марта 2020

Я написал функцию для создания таблицы

После изучения вопроса: - проблема в том, что код работает нормально при добавлении таблицы с именем «tableName» на один лист, но если я вставлю другую таблицу на другой лист с тем же именем «tableName» выдает ошибку и не вставляет таблицу, но без содержимого. Мне нужно применить имя к таблице, так как я хочу получить таблицу в соответствии с потребностями, и я делаю это с помощью ее имени. доступ к нему.


Ошибка : что-то пошло не так !!! RichApi.Error: Аргумент неверен или отсутствует или имеет неправильный формат. в новом c (https://appsforoffice.microsoft.com/lib/1.1/hosted/excel-web-16.00.js: 24: 293355 ) в bfprocessRequestExecutorResponseMessage (https://appsforoffice.microsoft.com/lib/1.1/hosted/excel-web-16.00.js: 24: 354008 ) в https://appsforoffice.microsoft.com/lib/1.1/hosted/excel-web-16.00.js: 24: 352113 at ZoneDelegate.pu sh .. / node_modules / zone.js / dist / zone. js .ZoneDelegate.invoke (https://localhost/excelProject/polyfills.js: 2753: 26 ) в Object.onInvoke (https://localhost/excelProject/vendor.js: 57267: 33 ) в ZoneDelegate.pu sh .. / node_modules / zone.js / dist / zone. js .ZoneDelegate.invoke (https://localhost/excelProject/polyfills.js: 2752: 52 ) в Zone.pu sh .. / node_modules / zone.js / dist / zone. js .Zone.run (https://localhost/excelProject/polyfills.js: 2512: 43 ) в https://localhost/excelProject/polyfills.js: 3251: 34 в ZoneDelegate.pu sh .. / node_modules / zone.js / dist / zone. js .ZoneDelegate.invokeTask (https://localhost/excelProject/polyfills.js: 2785: 31 ) в Object.onInvokeTask (https://localhost/excelProject/vendor.js: 57258: 33 )


Код :

createTable(tableName, startColumn, endColumn, headerData, bodyData, onTableChangedCallback, onSelectionChangedCallback){
Excel.run((context)=> {
  var sheet = context.workbook.worksheets.getActiveWorksheet();
  let colRange = startColumn+":"+endColumn;//like B2:D2
  var sfTable = sheet.tables.add(colRange, true /*hasHeaders*/);
  sfTable.name = "tableName";
  let headerRow = [];
  headerRow.push(headerData);//Below code is hardcoded for 4 column for now


  var tableHeaderRange = sfTable.getHeaderRowRange();
  tableHeaderRange.values = 
  [["Date", "Merchant", "Category", "Amount"]];

  sfTable.rows.add(null /*add rows to the end of the table*/, 
    [
      ["1/1/2017", "The Phone Company", "Communications", "$120"],
      ["1/2/2017", "Northwind Electric Cars", "Transportation", "$142"],
      ["1/5/2017", "Best For You Organics Company", "Groceries", "$27"],
      ["1/10/2017", "Coho Vineyard", "Restaurant", "$33"],
      ["1/11/2017", "Bellows College", "Education", "$350"],
      ["1/15/2017", "Trey Research", "Other", "$135"],
      ["1/15/2017", "Best For You Organics Company", "Groceries", "$97"]
  ]);



  if (Office.context.requirements.isSetSupported("ExcelApi", "1.2")) {
      sheet.getUsedRange().format.autofitColumns();
      //sheet.getUsedRange().format.autofitRows();
      sheet.getUsedRange().format.rowHeight = 15;
  }
  sfTable.onChanged.add(onTableChangedCallback);
  sfTable.onSelectionChanged.add(onSelectionChangedCallback)
  sheet.activate();

  return context.sync(); 
})
.catch((err)=>{
  this.errorHandlerFunction(err,"create table")
});

}

1 Ответ

0 голосов
/ 08 апреля 2020

Причина ошибки была очень необычной. Но проблема была с таблицами с одинаковыми именами. Ошибка была удалена, когда я назвал их по-разному.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...