簡體   English   中英

0 谷歌腳本中谷歌表格中的前導數字格式

[英]0 leading number format in google sheet in google script

<script>
  function jump01(field, autoMove){
    if (field.value.length >= field.maxLength){
      document.getElementById("text-number").value.toString();
      document.getElementById(autoMove).focus();
      document.getElementById("money-amount").value = "";
    }
  }

  function afterButtomClicked(){
    var num = document.getElementById("text-number");
    var am =  document.getElementById("money-amount");
    var rowData = {number: num.value, amount: am.value};
    google.script.run.addNewRow(rowData);
    document.getElementById("text-number").value = "";
  }

  document.getElementById("mainButtom").addEventListener("click",afterButtomClicked);

  function focusInput() { 
    document.getElementById("text-number").focus();
  } 
 
</script>

這就是谷歌腳本代碼中的方式。
問題是我不能把 00 或 01 放在谷歌表格單元格中。 或單元格形式的 0 前導數字。
如果可能的話,我想知道如何通過鍵入 + 號在不同的單元格中將 84 號寫為 48 到 84。或 123 到 132 213 231 321 312。 我在谷歌表中使用自定義用戶表單(自定義 HTML 用戶表單)。

function addNewRow(rowData) {
    const currentDate = new Date();
    
    const ss = SpreadsheetApp.getActiveSpreadsheet();
    const ws = ss.getSheetByName("Name 9");
    ws.appendRow([rowData.number,rowData.amount,rowData.amount * 44,currentDate]);
}

即添加新行 function

最好在addNewRow() function 中使用Range.setNumberFormat( ),如下所示:

function addNewRow(rowData) {
  const sheet = SpreadsheetApp.getActive().getSheetByName('Name 9');
  const data = [[rowData.number, rowData.amount, rowData.amount * 44, new Date()]];
  const formats = [['00.00', '00.00', '00.00', 'yyyy-mm-dd hh:mm']];
  const appendRange = sheet.getRange(sheet.getLastRow() + 1, 1, data.length, data[0].length);
  appendRange.setValues(data).setNumberFormats(formats);
}

快速但丑陋的方法是將數據強制轉換為文本字符串並以撇號作為前綴,如下所示:

ws.appendRow([rowData.number,rowData.amount,rowData.amount * 44,currentDate].map(value => "'" + String(value)));

暫無
暫無

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

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