Appliquer un ombrage aux lignes et colonnes alternées avec une mise en forme conditionnelle

Contents
[ ]

Cet article utilise des fonctions intégrées à Excel telles que ROW, COLUMN & MOD. Voici quelques détails sur ces fonctions pour une meilleure compréhension de l’extrait de code fourni ci-après.

  • La fonction ROW() retourne le numéro de ligne d’une référence de cellule. Si le paramètre de référence est omis, elle suppose que la référence est l’adresse de la cellule dans laquelle la fonction ROW a été entrée.
  • La fonction COLUMN() retourne le numéro de colonne d’une référence de cellule. Si le paramètre de référence est omis, elle suppose que la référence est l’adresse de la cellule dans laquelle la fonction COLUMN a été entrée.
  • La fonction MOD() retourne le reste après la division d’un nombre par un diviseur, où le premier paramètre de la fonction est la valeur numérique dont vous souhaitez trouver le reste et le deuxième paramètre est le nombre utilisé pour diviser le paramètre de nombre. Si le diviseur est 0, alors il retournera l’erreur #DIV/0!.

Commençons à écrire du code pour atteindre cet objectif avec l’aide de l’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"));

La capture d’écran suivante montre la feuille de calcul résultante chargée dans l’application Excel.

todo:image_alt_text

Pour appliquer l’ombrage aux colonnes alternatives, il vous suffit de changer la formule =MOD(ROW(),2)=0 en =MOD(COLUMN(),2)=0, c’est-à-dire; au lieu d’obtenir l’index de ligne, modifier la formule pour récupérer l’index de colonne.
La feuille de calcul résultante, dans ce cas, ressemblera comme suit.

todo:image_alt_text