Вы извлекаете данные в Google Sheet из таблицы базы данных MySQL, используя Jdbc. Один из столбцов базы данных отформатирован как «varchar» и содержит некоторые числовые значения, которые имеют один или несколько ведущих нулей. Когда вы обновляете значения базы данных в Google Sheet, начальные нули не отображаются.
Почему
Причина этого заключается в том, что отображаются числовые значениябез начальных нулей то, что ячейки отформатированы как Число, Автоматически (или иначе как число). Это означает, что они «интерпретируются» Google Sheets как число, и по умолчанию все ведущие нули удаляются.
С другой стороны, если ячейки отформатированы как Число, Простой текст , то все числовые значения «интерпретируются» как строки, и все ведущие нули сохраняются.
Эффект форматирования хорошо виден на следующих изображениях, которые также включают формулы istext
и isnumber
для подтверждения того, как они интерпретируются для каждого типа формата.
Отформатировано как число - обычный текст - обрабатывается как строки
Отформатировано как число - автоматически - обрабатывается как числа
Форматирование на лету
Альтернатива предварительному форматированию (который не был успешным в случае ОП) - установить формат как часть метода setValues()
, используя setNumberFormat
Например:
sheet.getRange(3, 1 , valArr.length, numCols).setNumberFormat('@STRING@').setValues(valArr);
Существует полезное обсуждение этого метида в Форматирование ячейки Google Sheets в виде открытого текста через Apps Script