У меня есть следующий код в моем скрипте Google Apps, который получает данные из моей электронной таблицы Google, а строка 15 (последняя строка) возвращает сообщение об ошибке TypeError: percent1.setNumberFormats is not a function (line 15, file "Code")
. Что я должен изменить, чтобы исправить это?
Что я хочу сделать, так это отобразить dod1
в процентном формате, например 0.00%
function notifySlack(message) {
var url = 'https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxxx/edit#gid=xxxxxxxxx';
var spreadSheet = SpreadsheetApp.openByUrl(url);
var allSheets = spreadSheet.getSheets();
var theSheet = allSheets[1];
var lastRow = theSheet.getLastRow();
var lastColumn = theSheet.getLastColumn();
var sheetData = theSheet.getSheetValues(1, 1, lastRow, lastColumn);
var ymd = Utilities.formatDate(sheetData[44][0], 'Asia/Tokyo', 'yyyy-MM-dd');
var data1 = sheetData[44][1];
var percent1 = sheetData[44][1] / sheetData[43][1];
var dod1 = percent1.setNumberFormat('0.00%');
}
sheetData[44][1]
и sheetData[43][1]
являются числами, percent1
из var percent1 = sheetData[44][1] / sheetData[43][1];
является числом. Когда это строка, percent1
это NaN
.setNumberFormat
— это метод диапазона классов классов. РефВ этой ситуации в вашем скрипте возникает ошибка. Это причина вашей проблемы. К сожалению, из вашего сценария я не смог понять детали вашей цели. Итак, в этом ответе я хотел бы предложить 2 шаблона для вашей цели, которую я догадался.
В этом шаблоне значение percent1
из var percent1 = sheetData[44][1] / sheetData[43][1];
изменено на 0.00%
. В этом случае значение dod1
становится строкой.
var dod1 = percent1.setNumberFormat('0.00%');
To:
var dod1 = Utilities.formatString("%1.2f%", percent1 * 100);
В этом шаблоне объясняется метод использования setNumberFormat
. Если вы хотите изменить числовой формат ячейки «A1» на активном листе, вы можете использовать следующий сценарий. В этом случае в качестве числа можно использовать значение ячейки «А1».
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("A1");
range.setNumberFormat('0.00%');
@oki_oki Спасибо за ответ. Я рад, что ваша проблема была решена. Что касается вашего нового вопроса, я хотел бы поддержать вас. Но я должен извиниться за мое плохое знание английского языка. К сожалению, я не могу понять ваш новый вопрос. Итак, чтобы правильно понять это, можете ли вы опубликовать его как новый вопрос, включая дополнительную информацию, используя образцы значений? Таким образом, это поможет пользователям, включая меня, подумать о решении. Если вы можете сотрудничать, чтобы решить вашу проблему, я рад. Можете ли вы сотрудничать, чтобы решить ваш новый вопрос?
Танайке - вот мой новый вопрос. Было бы полезно, если бы вы могли быстро взглянуть.stackoverflow.com/questions/65282966/…
Танайке. Если можно, еще одна небольшая вещь: если я хочу, чтобы Pattern1 использовался таким образом с некоторым форматированием, например «[Зеленый]+#,##0;[Красный]-#,##0», есть ли способ сделать это? Я хотел бы сделать формат богатым на основе положительных/отрицательных чисел, если это возможно.