Да, это возможно, но вы должны внести изменения перед вызовом getValues и использовать getDisplayValues ():
// do not use getValues(), which will convert dates
var string_data = my_sheet.getRange(...).getDisplayValues();
Если вы хотите использовать только отображаемое значение вВ ограниченном случае, скажем, дат, вы можете скопировать оба значения и отображения, затем проверить, является ли ваше значение датой, и, если это так, использовать вместо этого соответствующий дисплей:
// use getDisplayValues() for dates, getValues() otherwise
var string_data = my_sheet.getRange(...).getDisplayValues();
var value_data = my_sheet.getRange(...).getValues();
value_data.forEach(function(row_vals, i) {
row.forEach(function(cell_val, j) {
if(is_date(cell_val)) // see e.g. https://stackoverflow.com/a/17110249/3160967
do_something_with(string_data(i, j));
else
do_something_with(cell_val);
});
});
Наконец, вышеуказанные потребностимодификация, если вы хотите использовать ее как листовую функцию, потому что вызовы функций автоматически применяют getValues () перед выполнением кода функции.Чтобы обойти это, вы можете использовать методы, описанные в https://webapps.stackexchange.com/a/30784