我所知道报表之POI创建Excel、单元格填充数据、设置样式、绘制图形

本文详细介绍了如何使用Apache POI库在Java中创建Excel文件,包括创建工作簿和Sheet,填充单元格数据,设置单元格样式如字体、边框、居中和合并单元格,以及如何在Excel中绘制图片。通过实例代码展示了每个步骤的操作方法,是Java程序员处理Excel文件的实用教程。
摘要由CSDN通过智能技术生成

一、创建Excel单元格


我们如何使用代码的方式,代替我们平常新建的excel文档?

1.首先按照我们的需要选择POI的结构

2.使用POI提供的API进行创建即可

//测试创建excel文件
public static void main(String[] args) throws Exception {
    //1.创建workbook工作簿
    Workbook wb = new XSSFWorkbook();
    //2.创建表单Sheet
    Sheet sheet = wb.createSheet("test");
    //3.文件流
    FileOutputStream fos = new FileOutputStream("E:\\test.xlsx");
    //4.写入文件
    wb.write(fos);
    fos.close();
}

这时我们允许main 方法,找到excel文档查看我们刚刚进行的操作

二、单元格填充数据


如果将数据写入到单元格中呢?

主要分几步:创建工作簿、创建表单Sheet、创建row、创建单元格cell

//测试创建单元格
public static void main(String[] args) throws Exception {
    //1.创建workbook工作簿
    Workbook wb = new XSSFWorkbook();
    //2.创建表单Sheet
    Sheet sheet = wb.createSheet("test");
    //3.创建行对象,从0开始
    Row row = sheet.createRow(3);
    //4.创建单元格,从0开始
    Cell cell = row.createCell(0);
    //5.单元格写入数据
    cell.setCellValue("单元格01");
    //6.文件流
    FileOutputStream fos = new FileOutputStream("E:\\test.xlsx");
    //7.写入文件
    wb.write(fos);
    fos.close();
}

这时我们允许main 方法,找到excel文档查看我们刚刚进行的操作

三、单元格的样式


在excel文档中,我们可以设置字体、大小、单元格的宽度高度、居中显示、合并单元格等样式的操作,那么在poi中我们如何进行呢?

//测试创建单元格
public static void main(String[] args) throws Exception {
    //省略其他关键性代码......
    //5.单元格写入数据
    cell.setCellValue("传智播客");
    //6.创建单元格样式对象
    CellStyle cellStyle = wb.createCellStyle();
    //设置边框
    cellStyle.setBorderBottom(BorderStyle.DASH_DOT);//下边框
    cellStyle.setBorderTop(BorderStyle.HAIR);//上边框
    //设置字体
    Font font = wb.createFont();//创建字体对象
    font.setFontName("华文行楷");//设置字体
    font.setFontHeightInPoints((short)28);//设置字号
    cellStyle.setFont(font);
    //设置居中显示
    cellStyle.setAlignment(HorizontalAlignment.CENTER);//水平居中
    cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中
    //设置单元格样式
    cell.setCellStyle(cellStyle);
    //合并单元格
    CellRangeAddress  region = new CellRangeAddress(0, 3, 0, 2);
    sheet.addMergedRegion(region);
}

四、绘制图形


在excel中,我们有时候会插入一些图片,那么在poi中会怎么做呢?

1.首先我们需要将需要放入的图片转为二进制数组

2.excel会在内存中统一集中管理图片,所以我们向POI内存中添加一张图片

3.向POI内存添加图片时,会返回该图片的下标,方便使用管理需要操作的图片

4.通过绘制图片工具类进行绘制,需要先获取一个绘图对象开始绘画

5.通过图片工具类,创建瞄点设置图片的位置坐标

6.使用绘图对象进行操作图片的绘画

//绘制图形
public static void main(String[] args) throws Exception {
    //1.创建workbook工作簿
    Workbook wb = new XSSFWorkbook();
    //2.创建表单Sheet
    Sheet sheet = wb.createSheet("test");
    //读取图片流
    FileInputStream stream=new FileInputStream("e:\\logo.jpg");
    byte[] bytes= IOUtils.toByteArray(stream);
    //读取图片到二进制数组
    stream.read(bytes);
    //向Excel添加一张图片,并返回该图片在Excel中的图片集合中的下标
    int pictureIdx = wb.addPicture(bytes,Workbook.PICTURE_TYPE_JPEG);
    //绘图工具类
    CreationHelper helper = wb.getCreationHelper();
    //创建一个绘图对象
    Drawing<?> patriarch = sheet.createDrawingPatriarch();
    //创建锚点,设置图片坐标
    ClientAnchor anchor = helper.createClientAnchor();
    anchor.setCol1(0);//从0开始
    anchor.setRow1(0);//从0开始
    //创建图片
    Picture picture = patriarch.createPicture(anchor, pictureIdx);
    picture.resize();
    //6.文件流
    FileOutputStream fos = new FileOutputStream("E:\\test.xlsx");
    //7.写入文件
    wb.write(fos);
    fos.close();
}

参考资料


黑马程序员:基于SaaS平台的iHRM刷脸登录实战开发(报表相关视频)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值