Java Apache Poi, comment définir la couleur d'arrière-plan et les frontières en même temps

au départ, j'ai envie de dire que je suis totalement nouveau dans des développeurs du monde.

J'ai essayé de générer une feuille excel qui contient Mutiplication Table avec des frontières et de définir la couleur de fond, mais uniquement pour la 1ère colonne et de ligne.

Ici est un Exemple correct: exemple correct

J'ai écrit quelque chose comme ça, mais dans le fichier de résultat de couleur des cellules n'a pas de frontières :(.

Merci de m'expliquer comment faire pour définir la couleur de fond et des bordures en même temps.

import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.IndexedColors; import java.awt.image.IndexColorModel; import java.io.FileOutputStream; import java.io.IOException; import java.util.Scanner; public class Excel { public static void main(String[] args) throws IOException { Scanner in = new Scanner(System.in); System.out.println("enter number of rows: "); int x = in.nextInt(); System.out.println("enter number of columns: "); int y = in.nextInt(); System.out.println("enter name of file: "); String fileName = in.next() + ".xls"; System.out.println("Multiplication table will be created in file: " + fileName); createExcelMultiplicationTable(fileName, x, y); System.out.println("Process successful executed"); } private static void createExcelMultiplicationTable(String fileName, int x, int y) throws IOException { Workbook workbook = new HSSFWorkbook(); Sheet sheet = workbook.createSheet("multiplicationTable"); CellStyle backgroundStyle = workbook.createCellStyle(); backgroundStyle.setFillBackgroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); backgroundStyle.setFillPattern(CellStyle.SOLID_FOREGROUND); CellStyle borderStyle = workbook.createCellStyle(); borderStyle.setBorderBottom(CellStyle.BORDER_THIN); borderStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); borderStyle.setBorderLeft(CellStyle.BORDER_THIN); borderStyle.setLeftBorderColor(IndexedColors.BLACK.getIndex()); borderStyle.setBorderRight(CellStyle.BORDER_THIN); borderStyle.setRightBorderColor(IndexedColors.BLACK.getIndex()); borderStyle.setBorderTop(CellStyle.BORDER_THIN); borderStyle.setTopBorderColor(IndexedColors.BLACK.getIndex()); for (int i = 1; i <= x; i++) { Row row = sheet.createRow(i - 1); for (int j = 1; j <= y; j++) { Cell cell = row.createCell(j - 1); cell.setCellValue(i * j); cell.setCellStyle(borderStyle); if (cell.getRowIndex() == 0 || cell.getColumnIndex() == 0) { cell.setCellStyle(backgroundStyle); } } } FileOutputStream out = new FileOutputStream(fileName); workbook.write(out); out.close(); } }
Peut-être que ceci aide.

OriginalL'auteur Robert Lewandowski | 2016-08-10