在 Google App 脚本、电子表格中添加前导零

Posted

技术标签:

【中文标题】在 Google App 脚本、电子表格中添加前导零【英文标题】:Adding Leading Zeros t in Google App Script, Spreadsheet 【发布时间】:2018-12-24 07:28:21 【问题描述】:

我有一个主表,我正在从那里复制值并将其放入一个新选项卡中。但是当我在新选项卡中显示数字时,它正在摆脱前导零。例如:在我的主表中,我有 00734,我将其复制到新选项卡,它显示为 734。

这是我用来复制值的代码:

 var values = active.getRange(startAt, 1,numRowsToCount,16 ).getValues();

这是将值放入新选项卡的位置:

 active.getRange(1, 1, values.length, values[0].length).setValues(values).setHorizontalAlignment("left").setFontFamily("Calibri").setFontSize(11); 
 active.getRange(1,12, values.length,1).setValue(values[0][0]).setNumberFormat("00####");

【问题讨论】:

【参考方案1】:

替换:

var values = active.getRange(startAt, 1,numRowsToCount,16 ).getValues();

与:

var values = active.getRange(startAt, 1,numRowsToCount,16 ).getDisplayValues();

【讨论】:

【参考方案2】:

我不确定我是否相信:

这是我的测试代码:

function getRealValues()
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  var vB=rg.getDisplayValues();
  var end="is near";

这是我在一张图片中的调试结果和电子表格数据:

我玩了一下,发现如果是纯文本,它们都是相同的,但如果你使用数字格式来创建前导零,那么两者之间就会有所不同。

新代码:

function getRealValues()
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getDataRange();
  rg.setNumberFormat('00#');
  var vA=rg.getValues();
  var vB=rg.getDisplayValues();
  var end="is near";

这是新的调试和电子表格图像:

Number Format Tokens

我想我现在是个信徒了

【讨论】:

以上是关于在 Google App 脚本、电子表格中添加前导零的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Google 电子表格中的 Google Apps 脚本自动更新“站点地图”功能?

如何保护 Google 电子表格中的 Apps 脚本代码?

带有自定义脚本的公式不会在 Google 电子表格中更新

如何使用 Google Apps 脚本在电子表格中查找按钮的位置?

自动填充公式(跨电子表格运行) - Google 表格/应用程序脚本

搜索值,然后在Google表格中查找并使用google apps脚本在html中显示行值