• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

java 搞代码 4年前 (2022-02-19) 40次浏览 已收录 0个评论

一、创立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);//上边框
    //设置<strong style="color:transparent">来源gaodai#ma#com搞@代~码网</strong>字体
    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刷脸登录实战开发(报表相干视频)


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:我所知道报表之POI创建Excel单元格填充数据设置样式绘制图形

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址