Документация 0.4 Справочник действий
Записать диапазон
excel.writeRange · Excel
Записывает массив объектов или массив массивов на лист; создаёт файл и лист, если их нет
Записывает на лист сразу много строк: результат обработки, выгрузку записей отчёта, отфильтрованную таблицу. Быстрее, чем записывать ячейки по одной.
Свойства #
| Свойство | Имя в файле | Значение | Обязательное | По умолчанию | Описание |
|---|---|---|---|---|---|
| Путь к файлу | path |
путь к файлу | да | — | |
| Лист | sheet |
текст | нет | — | Пусто — первый лист; если листа нет, он будет создан |
| Начальная ячейка | startCell |
текст | нет | A1 |
|
| Данные | data |
выражение | да | — | Массив объектов (ключи — заголовки), напр. rows, или массив массивов: [[1, 'a'], [2, 'b']] |
| Записать заголовки | writeHeaders |
да/нет | нет | да | Для массива объектов: первой строкой записать ключи |
Результат #
Действие не возвращает значений.
Как работает #
- Путь к файлу (
path) — книга.xlsx(или.xlsm); относительный путь считается от папки процесса. Старый формат.xlsне поддерживается — сохраните книгу в Excel как.xlsx. Excel на компьютере робота не нужен. - Лист (
sheet) — имя листа; пусто — первый лист. Листа нет — он создаётся (имя до 31 символа, без: \ / ? * [ ]). - Начальная ячейка (
startCell, по умолчаниюA1) — левый верхний угол записи. - Данные (
data) — выражение:- список объектов (
rows,paid.map(r => r.values)) — колонки по ключам объектов, в порядке их первого появления; - список списков (
[[1, 'a'], [2, 'b']]) — строки как есть. Смешивать объекты и списки нельзя.
- список объектов (
- Записать заголовки (
writeHeaders, включено) — для списка объектов первой строкой записать ключи. - Числа и да/нет сохраняют тип,
null— пустая ячейка, текст — текст. - Книга сохраняется через временный файл рядом: если запись прервалась (нет места, отключилась сетевая папка), исходный файл остаётся целым. Файла нет — он создаётся.
Ошибки #
| Код | Причина и что делать |
|---|---|
FileLocked |
Книга открыта в Excel или другой программе — закройте её. Запись идёт в исключительном режиме, чтобы не испортить файл |
InvalidArgument |
Файл не .xlsx, повреждён или это не книга Excel; недопустимое имя листа; нет прав на запись |
InvalidArgument |
Элемент данных — не объект и не список; объекты и списки вперемешку; некорректная начальная ячейка; данные выходят за пределы листа |
ExpressionError |
Выражение данных дало не список |
Пример #
{
"type": "excel.writeRange",
"props": { "path": "out/неоплаченные.xlsx", "sheet": "Список", "startCell": "A1", "data": "unpaid", "writeHeaders": true }
}