无论使用哪种区域设置,如何使用Sheets API插入小数?

时间:2019-09-20 16:12:37

标签: google-sheets google-sheets-api

使用Sheets API v4,如何在忽略电子表格上确定小数点分隔符的区域设置的同时插入小数点(例如197.99)?

例如,如果将语言环境设置为“瑞典”(使用逗号作为小数点分隔符),则将valueInputOption设置为USER_ENTERED,并插入值197.99 。当我希望它显示为198.39.00时,最终显示为197,99

我唯一能想到的是在发送表单之前先阅读工作表上的语言环境设置并重新格式化我的数字,但是,这将需要我作为开发人员维护使用逗号作为分隔符的语言环境列表而且感觉不正确。

我希望有一种方法可以通过单元格或类似格式上的格式化规则来实现。

1 个答案:

答案 0 :(得分:0)

我无法通过使用自定义数字格式来“解决”此问题,因此最终我确实阅读了电子表格的区域设置并自行重新格式化了数值。

我正在使用Node,所以我叫service.spreadsheets.get()

service.spreadsheets.get({
    'spreadsheetId': options.event.meta.related_id,
}, function(err, response) {
    if(err) {
        return next(err);
    }

    global.debug.info('Received spreadsheet info', response.data);

    next(null, {'locale': response.data.properties.locale, 'title': response.data.properties.title || '', 'timezone': response.data.properties.timeZone});
});

然后,我使用该locale参数的结果来适当地重新格式化我的数字。当检测到以下值时,我已将其应用:

var comma_locales = ['es_AR', 'hy_AM', 'az_AZ', 'be_BY', 'es_BO', 'pt_BR', 'bg_BG', 'fr_CA', 'es_CL', 'cs_CZ', 'da_DK', 'es_EC', 'fi_FI', 'fr_FR', 'ka_GE', 'de_DE', 'el_GR', 'hu_HU', 'id_ID', 'it_IT', 'kk_KZ', 'lv_LV', 'lt_LT', 'mn_MN', 'nl_NL', 'nb_NO', 'nn_NO', 'es_PY', 'pl_PL', 'pt_PT', 'ro_RO', 'ru_RU', 'sr_RS', 'sk_SK', 'sl_SI', 'eu_ES', 'es_ES', 'sv_SE', 'tr_TR', 'uk_UA', 'es_UY', 'es_VE', 'vi_VN'];