Доступ к ячейкам
Доступ к ячейкам таблицы возможен двумя способами (см. Рисунок):
- непосредственно из таблицы, используя метод Table:getCell();
- из диапазона ячеек методом перечисления CellRange:enumerate().

Для получения содержимого ячейки, заполнения данных, а также для форматирования ячейки используется объект DocumentAPI.Cell, представляющий ячейку таблицы с указанным адресом. Метод Table:getCell() возвращает экземпляр таблицы Cell.
Пример
local table = document:getBlocks():getTable(0)
local cell = table:getCell("A1")
Второй вариант доступа к ячейке - перечисление диапазона ячеек методом CellRange:enumerate().
Пример
local table = document:getBlocks():getTable(0)
local rng = table:getCellRange("B3:C4")
for cell in rng:enumerate() do
print(cell:getFormattedValue())
end
Для определения того, входит ли ячейка в указанный диапазон, используется метод CellRange:containsCell().
Примеры
local table1 = document:getBlocks():getTable(0)
local table2 = document:getBlocks():getTable(1)
local cellRange1 = table1:getCellRange("A1:C4")
local cellRange2 = table2:getCellRange("A1:C4")
local cell1 = table1:getCell("A1")
local cell2 = table1:getCell("C4")
local cell3 = table1:getCell("E4")
print(cellRange1:containsCell(cell1))
print(cellRange1:containsCell(cell2))
print(cellRange1:containsCell(cell3))
print(cellRange2:containsCell(cell1))
print(cellRange2:containsCell(cell2))
print(cellRange2:containsCell(cell3))
Для установки значений ячеек используются методы Cell:setText, Cell:setNumber, Cell:setFormula, Cell:setBool.
Примеры
local sheet = document:getBlocks():getTable("Лист2")
--setText, текстовое значение
sheet:getCell("A1"):setText("Текст")
--setNumber, числовое значение с фиксированной точкой
sheet:getCell("B2"):setNumber(10)
--setNumber, числовое значение с плавающей точкой
sheet:getCell("B3"):setNumber(1.0)
--setFormula, текст формулы
sheet:getCell("B4"):setFormula("=SUM(B2:B3)")
--setBool, логическое значение
sheet:getCell("B4"):setBool(false)
Для установки даты и времени используется функция Cell:setFormattedValue. Данная функция пытается определить тип значения, переданного в качестве аргумента (число, дата и т.д.) и применяет необходимое форматирование.
Пример
local sheet = document:getBlocks():getTable("Лист1")
--setFormattedValue, дата
sheet:getCell("B5"):setFormattedValue("22.07.2020")
--setFormattedValue, время
sheet:getCell("B6"):setFormattedValue("12:39")
При необходимости есть возможность явно указать формат вводимого значения DocumentAPI.CellFormat (процентный, денежный, экспоненциальный и т.д.), для этого используется функция Cell:setFormat().
Пример
local sheet = document:getBlocks():getTable("Лист1")
local value = 12
local cell = sheet:getCell("B1")
-- Установка формата данных
cell:setFormat(DocumentAPI.CellFormat_Accounting)
cell:setNumber(value)
Для получения значения ячейки используются методы Cell:getFormattedValue(), Cell:getNumberValue() и Cell:getBoolValue().
Пример
local sheet = document:getBlocks():getTable("Лист1")
local value = sheet:getCell("B1"):getFormattedValue()
print(value)