POI简易帮助文档系列--给Excel设置样式

  正如Html需要CSS一样,我们的POI生成的Excel同样需要样式才能更完美的表现我们的数据。下面还是从简单的例子出发,学习和了解POI的样式设计。

  一、我的位置。

  

 1 package com.myjava.poi;  2 

 3 import java.io.FileOutputStream;  4 import java.util.Date;  5 

 6 import org.apache.poi.hssf.usermodel.HSSFCell;  7 import org.apache.poi.hssf.usermodel.HSSFCellStyle;  8 import org.apache.poi.hssf.usermodel.HSSFRichTextString;  9 import org.apache.poi.hssf.usermodel.HSSFWorkbook; 10 import org.apache.poi.ss.usermodel.Cell; 11 import org.apache.poi.ss.usermodel.CellStyle; 12 import org.apache.poi.ss.usermodel.Row; 13 import org.apache.poi.ss.usermodel.Sheet; 14 import org.apache.poi.ss.usermodel.Workbook; 15 

16 public class ExcelStyle { 17 

18     public static void main(String[] args) throws Exception{ 19         Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿

20         Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页

21         Row row=sheet.createRow(2); // 创建一个行

22         row.setHeightInPoints(30); 23         

24         createCell(wb, row, (short)0, HSSFCellStyle.ALIGN_CENTER, HSSFCellStyle.VERTICAL_BOTTOM); 25         createCell(wb, row, (short)1, HSSFCellStyle.ALIGN_FILL, HSSFCellStyle.VERTICAL_CENTER); 26         createCell(wb, row, (short)2, HSSFCellStyle.ALIGN_LEFT, HSSFCellStyle.VERTICAL_TOP); 27         createCell(wb, row, (short)3, HSSFCellStyle.ALIGN_RIGHT, HSSFCellStyle.VERTICAL_TOP); 28         

29         FileOutputStream fileOut=new FileOutputStream("D:\\工作簿.xls"); 30  wb.write(fileOut); 31  fileOut.close(); 32  } 33     

34     /**

35  * 创建一个单元格并为其设定指定的对齐方式 36  * @param wb 工作簿 37  * @param row 行 38  * @param column 列 39  * @param halign 水平方向对其方式 40  * @param valign 垂直方向对其方式 41      */

42     private static void createCell(Workbook wb,Row row,short column,short halign,short valign){ 43         Cell cell=row.createCell(column);  // 创建单元格

44         cell.setCellValue(new HSSFRichTextString("我在这"));  // 设置值

45         CellStyle cellStyle=wb.createCellStyle(); // 创建单元格样式

46         cellStyle.setAlignment(halign);  // 设置单元格水平方向对其方式

47         cellStyle.setVerticalAlignment(valign); // 设置单元格垂直方向对其方式

48         cell.setCellStyle(cellStyle); // 设置单元格样式

49  } 50     

51 

52 }

   效果显示:

  POI简易帮助文档系列--给Excel设置样式

  二、我的边框

  

 1 package com.myjava.poi;  2 

 3 import java.io.FileOutputStream;  4 import java.util.Calendar;  5 import java.util.Date;  6 

 7 import org.apache.poi.hssf.usermodel.HSSFWorkbook;  8 import org.apache.poi.ss.usermodel.Cell;  9 import org.apache.poi.ss.usermodel.CellStyle; 10 import org.apache.poi.ss.usermodel.CreationHelper; 11 import org.apache.poi.ss.usermodel.IndexedColors; 12 import org.apache.poi.ss.usermodel.Row; 13 import org.apache.poi.ss.usermodel.Sheet; 14 import org.apache.poi.ss.usermodel.Workbook; 15 

16 public class Border { 17 

18     public static void main(String[] args) throws Exception{ 19         Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿

20         Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页

21         Row row=sheet.createRow(1); // 创建一个行

22         

23         Cell cell=row.createCell(1); // 创建一个单元格

24         cell.setCellValue(4); 25         

26         CellStyle cellStyle=wb.createCellStyle(); 27         cellStyle.setBorderBottom(CellStyle.BORDER_THIN); // 底部边框

28         cellStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); // 底部边框颜色

29         

30         cellStyle.setBorderLeft(CellStyle.BORDER_THIN);  // 左边边框

31         cellStyle.setLeftBorderColor(IndexedColors.RED.getIndex()); // 左边边框颜色

32         

33         cellStyle.setBorderRight(CellStyle.BORDER_THIN); // 右边边框

34         cellStyle.setRightBorderColor(IndexedColors.BLUE.getIndex());  // 右边边框颜色

35         

36         cellStyle.setBorderTop(CellStyle.BORDER_MEDIUM_DASHED); // 上边边框

37         cellStyle.setTopBorderColor(IndexedColors.BLACK.getIndex());  // 上边边框颜色

38         

39  cell.setCellStyle(cellStyle); 40         FileOutputStream fileOut=new FileOutputStream("D:\\Border.xls"); 41  wb.write(fileOut); 42  fileOut.close(); 43  } 44 }

 

  效果显示:

  

  三、我的背景

  

 1 package com.myjava.poi;  2 

 3 import java.io.FileOutputStream;  4 import java.util.Calendar;  5 import java.util.Date;  6 

 7 import org.apache.poi.hssf.usermodel.HSSFWorkbook;  8 import org.apache.poi.ss.usermodel.Cell;  9 import org.apache.poi.ss.usermodel.CellStyle; 10 import org.apache.poi.ss.usermodel.CreationHelper; 11 import org.apache.poi.ss.usermodel.IndexedColors; 12 import org.apache.poi.ss.usermodel.Row; 13 import org.apache.poi.ss.usermodel.Sheet; 14 import org.apache.poi.ss.usermodel.Workbook; 15 

16 public class Bg { 17 

18     public static void main(String[] args) throws Exception{ 19         Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿

20         Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页

21         Row row=sheet.createRow(1); // 创建一个行

22         

23         Cell cell=row.createCell(1); 24         cell.setCellValue("看不清我"); 25         CellStyle cellStyle=wb.createCellStyle(); 26         cellStyle.setFillBackgroundColor(IndexedColors.AQUA.getIndex()); // 背景色

27  cellStyle.setFillPattern(CellStyle.BIG_SPOTS); 28  cell.setCellStyle(cellStyle); 29         

30         

31         Cell cell2=row.createCell(2); 32         cell2.setCellValue("我的前景色与众不同"); 33         CellStyle cellStyle2=wb.createCellStyle(); 34         cellStyle2.setFillForegroundColor(IndexedColors.RED.getIndex()); // 前景色

35  cellStyle2.setFillPattern(CellStyle.SOLID_FOREGROUND); 36  cell2.setCellStyle(cellStyle2); 37         

38         FileOutputStream fileOut=new FileOutputStream("D:\\bg.xls"); 39  wb.write(fileOut); 40  fileOut.close(); 41  } 42 }

  效果显示:

  

  四、合并单元格

  

 1 package com.myjava.poi;  2 

 3 import java.io.FileOutputStream;  4 import java.util.Calendar;  5 import java.util.Date;  6 

 7 import org.apache.poi.hssf.usermodel.HSSFWorkbook;  8 import org.apache.poi.ss.usermodel.Cell;  9 import org.apache.poi.ss.usermodel.CellStyle; 10 import org.apache.poi.ss.usermodel.CreationHelper; 11 import org.apache.poi.ss.usermodel.IndexedColors; 12 import org.apache.poi.ss.usermodel.Row; 13 import org.apache.poi.ss.usermodel.Sheet; 14 import org.apache.poi.ss.usermodel.Workbook; 15 import org.apache.poi.ss.util.CellRangeAddress; 16 

17 public class GetTogether { 18 

19     public static void main(String[] args) throws Exception{ 20         Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿

21         Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页

22         Row row=sheet.createRow(1); // 创建一个行

23         

24         Cell cell=row.createCell(1); 25         cell.setCellValue("我们被合并单元格啦!"); 26         

27         sheet.addMergedRegion(new CellRangeAddress( 28                 1, // 起始行

29                 2, // 结束行

30                 1, // 其实列

31                 2  // 结束列

32  )); 33         

34         

35         FileOutputStream fileOut=new FileOutputStream("D:\\Together.xls"); 36  wb.write(fileOut); 37  fileOut.close(); 38  } 39 }

  效果显示:

  POI简易帮助文档系列--给Excel设置样式

  学习这些知识,尝试做一个艺术气息的Excel吧。美化你的Excel,让数据“悦耳”起来。

 

 

 

 

你可能感兴趣的:(Excel)