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

Appliquer un ombrage aux lignes et colonnes alternées à l’aide de la mise en forme conditionnelle

Cet article utilise les fonctions intégrées d’Excel telles que ROW, COLONNE et MOD. Voici quelques détails sur ces fonctions pour une meilleure compréhension du code fourni ci-dessous.

  • La fonction ROW() retourne le numéro de ligne d’une référence de cellule. Si la référence est omise, 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 la référence est omise, 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 par écrire un peu de code pour atteindre l’objectif à l’aide de l’API Aspose.Cells for Java.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
String dataDir = Utils.getDataDir(ApplyShadingToAlternateRowsAndColumns.class);
/*
* Create an instance of Workbook Optionally load an existing spreadsheet by passing its stream or path to Workbook
* constructor
*/
Workbook book = new Workbook();
// Access the Worksheet on which desired rule has to be applied
Worksheet sheet = book.getWorksheets().get(0);
// Add FormatConditions to the instance of Worksheet
int index = sheet.getConditionalFormattings().add();
// Access the newly added FormatConditions via its index
FormatConditionCollection conditionCollection = sheet.getConditionalFormattings().get(index);
// Define a CellsArea on which conditional formatting will be applicable
CellArea area = 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
index = conditionCollection.addCondition(FormatConditionType.EXPRESSION);
// Access the newly added FormatCondition via its index
FormatCondition formatCondirion = conditionCollection.get(index);
// Set the formula for the FormatCondition. Formula uses the Excel's built-in functions as discussed earlier in this
// article
formatCondirion.setFormula1("=MOD(ROW(),2)=0");
// Set the background color and patter for the FormatCondition's Style
formatCondirion.getStyle().setBackgroundColor(Color.getBlue());
formatCondirion.getStyle().setPattern(BackgroundType.SOLID);
// Save the result on disk
book.save(dataDir + "output.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 à l’image suivante.

todo:image_alt_text