Применить засветку для альтернативных строк и столбцов с условным форматированием

Contents
[ ]

В этой статье используются встроенные функции Excel, такие как ROW, COLUMN & MOD. Вот некоторые подробности об этих функциях для лучшего понимания предоставленного фрагмента кода.

  • Функция ROW() возвращает номер строки ссылки. Если параметр reference пропущен, считается, что ссылка — это адрес ячейки, в которой вызвана функция.
  • Функция COLUMN() возвращает номер столбца ссылки. Если параметр reference пропущен, считается, что ссылка — это адрес ячейки, в которой вызвана функция.
  • Функция MOD() возвращает остаток после деления числа на делитель, где первый параметр функции - это числовое значение, для которого вы хотите найти остаток, и второй параметр - это число, используемое для деления числа. Если делитель равен 0, то она вернет ошибку #DIV/0!.

Давайте начнём писать код для реализации этой задачи с помощью API Aspose.Cells for Node.js via C++.

const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Create an instance of Workbook or load existing
const book = new AsposeCells.Workbook();
// Access the Worksheet on which desired rule has to be applied
const sheet = book.getWorksheets().get(0);
// Add FormatConditions to the instance of Worksheet
let idx = sheet.getConditionalFormattings().add();
// Access the newly added FormatConditions via its index
const conditionCollection = sheet.getConditionalFormattings().get(idx);
// Define a CellsArea on which conditional formatting will be applicable
// The code creates a CellArea ranging from A1 to I20
const area = AsposeCells.CellArea.createCellArea("A1", "I20");
// Add area to the instance of FormatConditions
conditionCollection.addArea(area);
// Add a condition to the instance of FormatConditions
// For this case, the condition type is expression, which is based on some formula
idx = conditionCollection.addCondition(AsposeCells.FormatConditionType.Expression);
// Access the newly added FormatCondition via its index
const formatCondition = conditionCollection.get(idx);
// Set the formula for the FormatCondition
formatCondition.setFormula1("=MOD(ROW(),2)=0");
// Set the background color and pattern for the FormatCondition's Style
formatCondition.getStyle().setBackgroundColor(AsposeCells.Color.Blue);
formatCondition.getStyle().setPattern(AsposeCells.BackgroundType.Solid);
// Save the result on disk
book.save(path.join(dataDir, "output_out.xlsx"));

В следующем снимке экрана показан полученный электронный лист, загруженный в приложение Excel.

todo:image_alt_text

Для применения засветки к альтернативным столбцам вам нужно изменить формулу =MOD(ROW(),2)=0 на =MOD(COLUMN(),2)=0, то есть вместо получения индекса строки измените формулу для получения индекса столбца.
Результирующая электронная таблица в этом случае будет выглядеть следующим образом.

todo:image_alt_text