条件付き書式を使用して交互の行と列に網掛けを適用する
条件付き書式を使用して交互の行および列に網掛けを適用する
この記事では、Excelの組み込み機能であるROW、COLUMN、MODを使用します。以下に、これらの機能の詳細を示します。提供されるコードスニペットの理解をサポートするために少しの詳細があります。
- ROW() 関数は、セル参照の行番号を返します。参照が省略された場合、ROW関数が入力されたセルアドレスを参照と想定します。
- COLUMN() 関数は、セル参照の列番号を返します。参照が省略された場合、COLUMN関数が入力されたセルアドレスを参照と想定します。
- MOD() 関数は、数値が除算された後の余りを返します。関数の最初のパラメーターは、余りを求めたい数値で、2番目のパラメーターは、数値パラメーターで除算する数です。除数が0の場合、#DIV/0!エラーが返されます。
Aspose.Cells for Java APIのサポートを活用して、目標を達成するためのコードの記述を開始しましょう。
// 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"); |
次のスナップショットは、Excelアプリケーションで読み込まれた結果のスプレッドシートを示しています。
交互の列に網掛けを適用するためには、単に式を =MOD(ROW(),2)=0 から =MOD(COLUMN(),2)=0 に変更するだけで済みます。つまり、行索引を取得する代わりに、式を変更して列索引を取得します。 この場合、結果のスプレッドシートは以下の画像のようになります。