Добавление лидирующих нулей в Google App Script, Spreadsheet - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть мастер-лист, и я копирую значения оттуда и помещаю его в новую вкладку.Но когда я показываю число в новой вкладке, оно избавляется от ведущих нулей.Например: в моем мастер-листе у меня есть 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####");

Ответы [ 2 ]

0 голосов
/ 25 декабря 2018

Я не уверен, что считаю, что:

Вот мой тестовый код:

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";
}

Вот мои результаты отладки и данные электронной таблицы в одном изображении:

enter image description here

Я немного поиграл с этим и обнаружил, что если это обычный текст, они оба одинаковы, но если вы используете числовой формат для создания начальных нулей, тогда есть разницамежду двумя.

Новый код:

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";
}

Вот новое изображение отладки и электронной таблицы:

enter image description here

Полагаю, я теперь верующий

0 голосов
/ 24 декабря 2018

Заменить:

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

на:

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