• 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 }

       效果显示:

      

      二、我的边框

      

     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 }

      效果显示:

      

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

  • 相关阅读:
    信息的封装和隐藏
    力扣 20. 有效的括号
    servlet执行原理
    当请求一个Servlet时,后台如何运作?
    req.getAttribute 和 req.getParameter
    Servlet 实现登录页面,并在条件下跳转
    request.getRequestDispatcher(a.jsp).forward(request,response)和response.sendRedirect的差别
    通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性,并检查 SQL Server 的实例正在
    Cocos2d-x 3.0 精灵帧缓存(SpriteFrameCache)
    lua 中处理cocos2dx 的button 事件
  • 原文地址:https://www.cnblogs.com/jyh317/p/3817171.html
Copyright © 2020-2023  润新知