Я пытаюсь добавить ячейки с гиперссылкой к файлу электронной таблицы, следуя приведенным здесь инструкциям https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/cells#celldata
Гиперссылка, на которую указывает эта ячейка, если таковая имеется. Это поле только для чтения. (Чтобы установить его, используйте формулу = HYPERLINK в поле userEnteredValue.formulaValue.)
Проблема состоит в том, что некоторые формулы имеют несколько параметров, разделенных запятой. Но в электронной таблице разграничители различны, например, в Турции. Разделитель в турецкой локали обозначается точкой с запятой, а не запятой. Я не проверял, различаются ли разделители в разных локалях.
После того, как я попытался добавить ссылку как formulaValue
, результат выглядит так в электронной таблице, в которой есть локаль Турции:
https://user-images.githubusercontent.com/5789670/77210180-61581500-6b11-11ea-9302-81dcf84256f8.png
, и это из электронной таблицы, которая имеет языковой стандарт США:
https://user-images.githubusercontent.com/5789670/77210238-8e0c2c80-6b11-11ea-9eb8-ea82fdc869d2.png
Обе таблицы имеют одинаковые формулы и разница только в этом (по сравнению с пустой таблицей)
https://user-images.githubusercontent.com/5789670/77210339-cc095080-6b11-11ea-8805-92b3f6c59b0b.png
Я не могу отследить / определить всю конфигурацию для разделителя в разных локалях. Я просто нашел способ генерировать формулу гиперссылки без проблем с разделителями.
Что-то вроде функции
.getDelimiter("Europe/Istanbul")
или поля в свойствах, чтобы понять, какой тип разделителя используется в целевом объекте. файл электронной таблицы
// SpreadsheetProperties
"properties": {
"title": string,
"locale": string,
"timeZone": string,
"formulaDelimiter": string, // read-only
...
}
Сведения об окружении
- ОС: Ubuntu 18.04
- Node.js версия: v12.13.0
- npm версия : 6.13.7
googleapis
версия: ^ 48.0.0
Шаги для воспроизведения
- Имеются две разные таблицы, которые имеют локали Соединенных Штатов и Турции.
- Используйте следующие данные для добавления ячейки с помощью batchUpdate API
{
"requests": [
{
"appendCells": {
"fields": "*",
"rows": [
{
"values": [
{
"userEnteredFormat": {},
"userEnteredValue": {
"formulaValue": "=HYPERLINK('https://google.com','20006922')"
}
}
]
}
],
"sheetId": 111111
}
}
]
}
Выполнение этих шагов гарантирует максимально быстрое разрешение.
Спасибо!
Оригинальный выпуск на Github. Можно найти здесь: https://github.com/googleapis/google-api-nodejs-client/issues/1994