TableCollection.add выдает ошибку ‘InvalidArgument’, когда имя листа содержит специальные символы

#office365 #office-js #excel-addins

#office365 #office-js #excel-дополнения

Вопрос:

Мы создали надстройку панели задач Excel, которая в основном работает с таблицами. У нас есть некоторый код, который выполняет TableCollection.add(rangeAddress, true). Этот вызов завершается ошибкой, когда имя листа в ‘rangeAddress’ содержит специальные символы.

Например —

 ctx.workbook.tables.add(Sheet!A1:E4, true)
  

работает нормально, но,

 ctx.workbook.tables.add(Sheet-Name!A1:E4, true)
  

выдает ошибку

 {
"name": "OfficeExtension.Error",
"code": "InvalidArgument",
"message": "The argument is invalid or missing or has an incorrect format.",
"traceMessages": [],
"debugInfo": {
    "errorLocation": "TableCollection.add"
}
  

}

Пожалуйста, обратите внимание, что второй пример адреса содержит специальный символ ‘-‘ в названии листа. Есть ли способ поддерживать специальные символы в имени листа?

Комментарии:

1. Я предполагаю, что имя листа и адрес указаны в кавычках… Но помимо этого, какую платформу (настольный компьютер, онлайн, Mac, iOS) вы используете — и какой номер версии?

2. Да, rangeAddress (имя листа и адрес) заключен в кавычки (строка). Это происходит на всех платформах (не уверен насчет iOS)

3. @MichaelZlatkovsky ты не в состоянии воспроизвести это? вам нужна какая-либо другая информация?

4. Какую платформу (настольный компьютер, онлайн, Mac, iOS) вы используете — и какой номер версии?

5. @MichaelZlatkovsky Как я упоминал выше, это воспроизводимо на всех платформах. Чтобы предоставить вам конкретные сведения, можете ли вы проверить для Mac desktop (версия — 15.29 (161101))

Ответ №1:

Проблема не в API … как таковых. Это не относится и к таблицам.

В Excel, если вы создаете ссылку на перекрестный лист, и если имя листа содержит не буквенно-цифровые символы (или что-то в этом роде), вы увидите, что формула записывается как ='Some-Hyphenated-Sheet'!C27 Обратите внимание, что имя листа заключено в одинарные кавычки.

API — это всего лишь отражение собственной функциональности Excel, поэтому вам также потребуется заключить название листа в одинарные кавычки. Это:

 ctx.workbook.tables.add("'Sheet-Name'!A1:E4", true)