Чтение и запись в большом диапазоне с помощью API JavaScript для Excel

Используйте эти шаблоны для чтения или записи больших диапазонов, избегая ошибок ограничения ресурсов.

  • Разделение больших диапазонов на более мелкие блоки. Не загружайте и не записывайте все сразу.
  • Загружайте только то, что вам нужно (например, только values вместо values,numberFormat,formulas).
  • Используйте getSpecialCells и RangeAreas для работы с рассеянными ячейками вместо большого диапазона.
  • Если возникает ошибка ограничения, повторите попытку с меньшим размером блока.
  • Примените форматирование после того, как данные будут введены.

Когда следует разделить большой диапазон

Сценарий Подпишите, что нужно разделить диапазон Способ
Чтение миллионов ячеек Ошибка времени ожидания или ресурса Чтение в блоках строк или столбцов. Начните с 5–20 тыс. строк.
Написание большого результирующих наборов Сбой одной values записи Запись в блоках строк (с одинаковым количеством столбцов для каждого блока).
Разреженные обновления Много удаленных ячеек Создайте объединенную строку адреса с getRanges помощью и RangeAreas.
Запись данных и форматирование Форматирование замедляет Excel Сначала запишите значения, а затем отформатируйте.

Отложить форматирование & вычислений

Операции форматирования и вычислений, такие как условные форматы или запись формул, добавляют время для больших областей. Ниже приведено несколько вариантов использования соответствующих функций.

  • Сначала напишите необработанные значения (обычные числа или текст), а затем добавьте формулы или форматы во второй проход.
  • Используйте setDirty только в необходимых областях пересчета.
  • Ограничьте условные форматы используемыми строками вместо ссылок на все столбцы (например, A2:A5000 вместо A:A) с getUsedRangeпомощью .

Дальнейшие действия

См. также