Судя по документации API Smartsheet, вы можете указать формат ячейки, установив свойство cell.format
для ячейки. В соответствии с разделом форматирования документации API, вы должны установить значение cell.format
равным следующему строковому значению для достижения описанного форматирования (валюта USD, без десятичных знаков и с разделителем тысяч) on):
",,,,,,,,,,,13,0,1,2,,"
Я не знаком с Ruby SDK, но я подозреваю, что для реализации этого подхода вы просто добавите свойство format к каждому валютная ячейка, которую вы заполняете. Например:
cells << {column_id: quarterly_sales_col_id, value: row[:q_sales], format: ",,,,,,,,,,,13,0,1,2,,"}
ОБНОВЛЕНИЕ
Я проверял это немного (через Почтальона) и похоже, что может быть ошибка, связанная с возможностью устанавливать формат ячейки через API и отражать его через пользовательский интерфейс Smartsheet.
Сначала я отправляю запрос ADD ROW, чтобы добавить строку на свой лист, устанавливая формат ячейки. значение для указания валюты в долларах США с 0 десятичными разрядами и разделителем тысяч:
POST https://api.smartsheet.com/2.0/sheets/5831916227192708/rows
[
{
"cells": [
{"columnId": 5759649950525316,"value": "1234", "format": ",,,,,,,,,,,13,0,1,2,,"}
]
}
]
Когда запрос будет выполнен успешно, я обновлю sh свой лист через интерфейс Smartsheet - но вместо просмотра ячейки значение отформатировано как мой запрос, указанный ($1,234
), я вижу это:
Поэтому я затем отправляю запрос GET SHEET, чтобы убедиться, что format
свойство этой ячейки установлено правильно:
GET https://api.smartsheet.com/2.0/sheets/5831916227192708?include=format
В ответе интересующий меня объект ячейки выглядит следующим образом:
{
"columnId": 5759649950525316,
"value": "1234",
"displayValue": "1234",
"format": ",,,,,,,,,,,13,0,1,2,,"
}
Интересно, что свойство format
установлено правильно (указывается валюта USD, с 0 десятичными знаками, d с разделителем тысяч) - НО свойство displayValue
установлено на 1234
, что, по-видимому, определяет, как значение ячейки отображается в самом пользовательском интерфейсе Smartsheet.
Я не могу найти способ через API, чтобы значение ячейки, отображаемое в пользовательском интерфейсе Smartsheet, точно отражало формат валюты, указанный для этой ячейки. Однако если при просмотре этого листа в пользовательском интерфейсе Smartsheet я изменяю значение в этой ячейке (например, на 5678
) и затем нажимаю клавишу ВВОД, значение ячейки ДОЛЖНО точно отражать формат, который присутствует для этой ячейки:
Мне кажется, что ошибка, связанная с тем, что форматирование значений ячеек, заданных через API, точно не отображается в пользовательском интерфейсе Smartsheet (до тех пор, пока / когда Вы обновляете значения ячеек через пользовательский интерфейс). Мне было бы интересно узнать, сможете ли вы найти способ заставить эту работу работать через API (в противном случае, возможно, кто-то из Smartsheet может здесь позвонить, чтобы объяснить это поведение).