如何在Java中使用Apache Poi在Excel中设置样式
时间:2020-02-23 14:34:23 来源:igfitidea点击:
在本教程中,我们将看到如何使用Apache Poi在Excel中设置样式。
我们可以使用以下代码放置单元格样式:
//create font XSSFFont font= workbook.createFont(); font.setFontHeightInPoints((short)10); font.setFontName("Arial"); font.setColor(IndexedColors.WHITE.getIndex()); font.setBold(true); font.setItalic(false); //Create cell style CellStyle style=workbook.createCellStyle();; style.setFillPattern(CellStyle.SOLID_FOREGROUND); style.setAlignment(CellStyle.ALIGN_CENTER); //Setting font to style style.setFont(font); //Setting cell style cell.setCellStyle(style);
Java程序:
package org.igi.theitroad; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFFont; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class WriteExcelMain { public static void main(String[] args) throws IOException { writeFileUsingPOI(); } public static void writeFileUsingPOI() throws IOException { //create blank workbook XSSFWorkbook workbook = new XSSFWorkbook(); //Create a blank sheet XSSFSheet sheet = workbook.createSheet("Country"); ArrayList<Object[]> data=new ArrayList<Object[]>(); data.add(new String[]{"Country","Capital","Population"}); data.add(new Object[]{"Netherlands","Delhi",10000}); data.add(new Object[]{"France","Paris",40000}); data.add(new Object[]{"Germany","Berlin",20000}); data.add(new Object[]{"England","London",30000}); //Iterate over data and write to sheet int rownum = 0; for (Object[] countries : data) { Row row = sheet.createRow(rownum++); int cellnum = 0; for (Object obj : countries) { Cell cell = row.createCell(cellnum++); if(obj instanceof String) cell.setCellValue((String)obj); else if(obj instanceof Double) cell.setCellValue((Double)obj); else if(obj instanceof Integer) cell.setCellValue((Integer)obj); //Setting style only for header if(rownum==1) { CellStyle style=null; //Creating a font XSSFFont font= workbook.createFont(); font.setFontHeightInPoints((short)10); font.setFontName("Arial"); font.setColor(IndexedColors.WHITE.getIndex()); font.setBold(true); font.setItalic(false); style=workbook.createCellStyle();; style.setFillPattern(CellStyle.SOLID_FOREGROUND); style.setAlignment(CellStyle.ALIGN_CENTER); //Setting font to style style.setFont(font); //Setting cell style cell.setCellStyle(style); } } } Row rowGap = sheet.createRow(rownum++); Row row = sheet.createRow(rownum++); Cell cellTotal = row.createCell(0); cellTotal.setCellValue("Total Population"); //Setting cell formula and cell type Cell cell = row.createCell(2); cell.setCellFormula("SUM(C2:C5)"); cell.setCellType(Cell.CELL_TYPE_FORMULA); try { //Write the workbook to the file system FileOutputStream out = new FileOutputStream(new File("CountriesDetails.xlsx")); workbook.write(out); out.close(); System.out.println("CountriesDetails.xlsx has been created successfully"); } catch (Exception e) { e.printStackTrace(); } finally { workbook.close(); } } }
运行上面的程序时,我们将获取以下输出:
CountriesDetails.xlsx has been created successfully