Applicare una sfumatura alle righe e alle colonne alternate con la formattazione condizionale

Contents
[ ]

Questo articolo fa uso di funzioni integrate di Excel come ROW, COLUMN e MOD. Ecco alcuni dettagli di queste funzioni per una migliore comprensione dello snippet di codice fornito in seguito.

  • La funzione ROW() restituisce il numero di riga di un riferimento di cella. Se il parametro di riferimento viene omesso, si assume che il riferimento sia l’indirizzo della cella in cui è stata inserita la funzione ROW.
  • La funzione COLUMN() restituisce il numero di colonna di un riferimento di cella. Se il parametro di riferimento viene omesso, si assume che il riferimento sia l’indirizzo della cella in cui è stata inserita la funzione COLUMN.
  • La funzione MOD() restituisce il resto dopo che un numero è diviso per un divisore, dove il primo parametro della funzione è il valore numerico di cui si desidera trovare il resto e il secondo parametro è il numero utilizzato per dividere il parametro del numero. Se il divisore è 0, restituirà l’errore #DIV/0!.

Iniziamo a scrivere del codice per raggiungere questo obiettivo con l’aiuto dell’API Aspose.Cells for .NET.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create an instance of Workbook or load existing
var book = new Workbook();
// Access the Worksheet on which desired rule has to be applied
var sheet = book.Worksheets[0];
// Add FormatConditions to the instance of Worksheet
int idx = sheet.ConditionalFormattings.Add();
// Access the newly added FormatConditions via its index
var conditionCollection = sheet.ConditionalFormattings[idx];
// Define a CellsArea on which conditional formatting will be applicable
// The code creates a CellArea ranging from A1 to I20
var 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
idx = conditionCollection.AddCondition(FormatConditionType.Expression);
// Access the newly added FormatCondition via its index
FormatCondition formatCondirion = conditionCollection[idx];
// Set the formula for the FormatCondition
// Formula uses the Excel's built-in functions as discussed earlier in this article
formatCondirion.Formula1 = @"=MOD(ROW(),2)=0";
// Set the background color and patter for the FormatCondition's Style
formatCondirion.Style.BackgroundColor = Color.Blue;
formatCondirion.Style.Pattern = BackgroundType.Solid;
// Save the result on disk
book.Save(dataDir + "output_out.xlsx");

Il seguente screenshot mostra il foglio elettronico caricato nell’applicazione Excel.

todo:image_alt_text

Per applicare l’ombreggiatura alle colonne alternative, tutto ciò che devi fare è modificare la formula =MOD(FILA(),2)=0 in =MOD(COLONNA(),2)=0, cioè; invece di ottenere l’indice di riga, modifica la formula per recuperare l’indice di colonna. Il foglio elettronico risultante, in questo caso, avrà questo aspetto.

todo:image_alt_text