diff options
author | Mark Murphy <jmarkmurphy@apache.org> | 2016-07-31 23:59:02 +0000 |
---|---|---|
committer | Mark Murphy <jmarkmurphy@apache.org> | 2016-07-31 23:59:02 +0000 |
commit | 5ec21e741df62343ee36f6a50559d20dce29ff19 (patch) | |
tree | 4302e2b65a81c91ae7340cdb667a6c573c724c69 /src/examples | |
parent | b9f01a0d81ac06fec193530ac5d9f7af95c72eed (diff) | |
download | poi-5ec21e741df62343ee36f6a50559d20dce29ff19.tar.gz poi-5ec21e741df62343ee36f6a50559d20dce29ff19.zip |
Add new class Cell Style Template and supporting enum for drawing borders
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1754691 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/examples')
-rw-r--r-- | src/examples/src/org/apache/poi/ss/examples/DrawingBorders.java | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/src/examples/src/org/apache/poi/ss/examples/DrawingBorders.java b/src/examples/src/org/apache/poi/ss/examples/DrawingBorders.java new file mode 100644 index 0000000000..d8b0927f78 --- /dev/null +++ b/src/examples/src/org/apache/poi/ss/examples/DrawingBorders.java @@ -0,0 +1,112 @@ +/* + * ==================================================================== + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + */ + +package org.apache.poi.ss.examples; + +import java.io.FileOutputStream; +import java.io.IOException; + +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.BorderStyle; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.util.BorderExtent; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.ss.util.CellStyleTemplate; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +/** + * Excel Border Drawing - examples + * + * <p> + * Partly based on the code snippets from + * org.apache.poi.ss.examples.ConditionalFormats + * </p> + */ +public class DrawingBorders { + + public static void main(String[] args) throws IOException { + Workbook wb; + + if (args.length > 0 && args[0].equals("-xls")) { + wb = new HSSFWorkbook(); + } else { + wb = new XSSFWorkbook(); + } + + // add a sheet, and put some values into it + Sheet sh1 = wb.createSheet("Sheet1"); + Row r = sh1.createRow(0); + Cell c = r.createCell(1); + c.setCellValue("All Borders Medium Width"); + r = sh1.createRow(4); + c = r.createCell(1); + c.setCellValue("Medium Outside / Thin Inside Borders"); + r = sh1.createRow(8); + c = r.createCell(1); + c.setCellValue("Colored Borders"); + + // draw borders (three 3x3 grids) + CellStyleTemplate cst = new CellStyleTemplate(); + // #1) these borders will all be medium in default color + cst.drawBorders(CellRangeAddress.valueOf("B2:D5"), + BorderStyle.MEDIUM, BorderExtent.ALL); + // #2) these cells will have medium outside borders and thin inside borders + cst.drawBorders(CellRangeAddress.valueOf("E2:G5"), + BorderStyle.MEDIUM, BorderExtent.OUTSIDE); + cst.drawBorders(CellRangeAddress.valueOf("E2:G5"), + BorderStyle.THIN, BorderExtent.INSIDE); + // #3) these cells will all be medium weight with different colors for the + // outside, inside horizontal, and inside vertical borders. The center + // cell will have no borders. + cst.drawBorders(CellRangeAddress.valueOf("I2:K5"), + BorderStyle.MEDIUM, IndexedColors.RED.getIndex(), + BorderExtent.OUTSIDE); + cst.drawBorders(CellRangeAddress.valueOf("I2:K5"), + BorderStyle.MEDIUM, IndexedColors.BLUE.getIndex(), + BorderExtent.INSIDE_VERTICAL); + cst.drawBorders(CellRangeAddress.valueOf("I2:K5"), + BorderStyle.MEDIUM, IndexedColors.GREEN.getIndex(), + BorderExtent.INSIDE_HORIZONTAL); + cst.drawBorders(CellRangeAddress.valueOf("J3"), + BorderStyle.NONE, + BorderExtent.ALL); + + // apply borders to sheet + cst.applyBorders(sh1); + + // add another sheet and apply the borders to it + Sheet sh2 = wb.createSheet("Sheet2"); + cst.applyBorders(sh2); + + // Write the output to a file + String file = "db-poi.xls"; + if (wb instanceof XSSFWorkbook) + file += "x"; + FileOutputStream out = new FileOutputStream(file); + wb.write(out); + out.close(); + wb.close(); + System.out.println("Generated: " + file); + } + +} |