簡體   English   中英

.setNumberFormat 在 Google Apps 腳本中不起作用

[英].setNumberFormat is not working in Google Apps Script

我的 Google Apps 腳本中有以下代碼,它從我的 Google 電子表格中獲取數據,第 15 行(最后一行)返回一個錯誤, TypeError: percent1.setNumberFormats is not a function (line 15, file "Code") 我應該改變什么來解決這個問題?

我想要做的是,我想以0.00%之類的百分比格式顯示dod1

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]的值為數字時, var percent1 var percent1 = sheetData[44][1] / sheetData[43][1]; 是數字。 當這些是字符串時, percent1NaN
  • 並且, setNumberFormat是 Class Class Range 的方法。 參考

通過這些情況,您的腳本會發生錯誤。 這是你的問題的原因。 不幸的是,從你的腳本中,我無法理解你目標的細節。 所以在這個答案中,我想為我猜到的你的目標提出 2 種模式。

模式一:

在這種模式下,var percent1 的percent1的值var percent1 = sheetData[44][1] / sheetData[43][1]; 修改為0.00% 在這種情況下, dod1的值變成了一個字符串。

從:
 var dod1 = percent1.setNumberFormat('0.00%');
至:
 var dod1 = Utilities.formatString("%1.2f%", percent1 * 100);

模式二:

在本模式中,解釋了使用setNumberFormat的方法。 當您要修改活動工作表中單元格“A1”的數字格式時,可以使用以下腳本。 在這種情況下,單元格“A1”的值可以用作數字。

 var sheet = SpreadsheetApp.getActiveSheet(); var range = sheet.getRange("A1"); range.setNumberFormat('0.00%');

參考:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM