文章目录

  • 依赖
  • 导包
  • 测试类
  • 打开查看
  • 结合实际项目使用

依赖

 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>3.17</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version></dependency>

导包

import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.net.URL;

测试类

public static void main(String[] args) throws Exception {FileOutputStream fileOut = null;//先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArrayString imgUrl = "https://img2.woyaogexing.com/2019/04/17/e7370782b0484237926113770074cd81!400x400.jpeg";URL url = new URL(imgUrl);//获取文件后缀名String suffix = imgUrl.substring(imgUrl.lastIndexOf(".") + 1);BufferedImage bufferImg = ImageIO.read(url);//以本地的方式图片、注释上面四行有效代码//        BufferedImage bufferImg = null;//        bufferImg = ImageIO.read(new File("D:/test.jpg"));ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();//这里要注意formatName要缓存后缀名ImageIO.write(bufferImg, suffix, byteArrayOut);HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet1 = wb.createSheet("test picture");sheet1.setDefaultColumnWidth((short)20);sheet1.setDefaultRowHeight((short)2000);//画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();for(int i =0;i<10;i++){//anchor主要用于设置图片的属性HSSFClientAnchor anchor =new HSSFClientAnchor(        0, //x缩放0, // y缩放1023, //最大1023255, //最大255(short) 4,  //于下下个参数进行定位 0开始i, //在第几行(short) 4, //宽度占几格 0开始i //第几列);
//          anchor.setAnchorType(3);//插入图片patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));}fileOut = new FileOutputStream("D:/测试Excel.xls");// 写入excel文件wb.write(fileOut);System.out.println("----Excel文件已生成------");}

打开查看

结合实际项目使用

// 声明一个工作薄HSSFWorkbook workBook = new HSSFWorkbook();// 生成一个表格HSSFSheet sheet = workBook.createSheet();sheet.createFreezePane(0, 1, 0, 1);workBook.setSheetName(0, "个人明细");CellStyle style = workBook.createCellStyle();Font font = workBook.getFontAt((short) 0);font.setCharSet(HSSFFont.DEFAULT_CHARSET);//更改默认字体大小font.setFontHeightInPoints((short) 12);font.setFontName("宋体");style.setFont(font);//默认宽高sheet.setDefaultColumnWidth((short)20);sheet.setDefaultRowHeight((short)2000);// 创建表格标题行 第一行HSSFRow titleRow = sheet.createRow(0);titleRow.createCell(0).setCellValue("员工姓名");titleRow.createCell(1).setCellValue("预计人天");titleRow.createCell(2).setCellValue("实际人天");titleRow.createCell(3).setCellValue("缺少人天");titleRow.createCell(4).setCellValue("员工照片");// 创建表格标题行 第一行HSSFRow titleRow = sheet.createRow(0);titleRow.createCell(0).setCellValue("员工姓名");titleRow.createCell(1).setCellValue("预计人天");titleRow.createCell(2).setCellValue("实际人天");titleRow.createCell(3).setCellValue("缺少人天");titleRow.createCell(4).setCellValue("员工照片");BufferedImage bufferImg = null;//先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArrayByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();try {bufferImg = ImageIO.read(new File("D:/test.jpg"));} catch (IOException e) {e.printStackTrace();}try {ImageIO.write(bufferImg, "jpg", byteArrayOut);} catch (IOException e) {e.printStackTrace();}HSSFPatriarch patriarch = sheet.createDrawingPatriarch();for (int i = 0; i < list.size(); i++) {CheckWorkVo checkWorkVo = list.get(i);HSSFRow titleRowNext = sheet.createRow(i + 1);titleRowNext.createCell(0).setCellValue(String.valueOf(checkWorkVo.getNickName()));titleRowNext.createCell(1).setCellValue(String.valueOf(checkWorkVo.getPreWorkDay()));titleRowNext.createCell(2).setCellValue(String.valueOf(checkWorkVo.getNowWorkDay()));titleRowNext.createCell(3).setCellValue(String.valueOf(checkWorkVo.getLackWorkDay()));//画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)//anchor主要用于设置图片的属性HSSFClientAnchor anchor =new HSSFClientAnchor(        0, //x缩放0, // y缩放1023, //最大1023255, //最大255(short) 4,  //宽度占几格 0开始i+1, //在第几行(short) 4, //宽度占几格 0开始i+1 //第几列);//插入图片patriarch.createPicture(anchor, workBook.addPicture(byteArrayOut.toByteArray(), XSSFWorkbook.PICTURE_TYPE_JPEG));}return workBook;

打开测试

Java使用POI导出图片的Excel相关推荐

  1. java使用POI导出图片到Excel

    个人学习记录 目录 个人学习记录 1. 使用POI导出图片到Excel中,Excel格式为xls 2. 使用POI导出图片到Excel中,Excel格式为xlsx,图片设置边距 3. 获取图片,生成B ...

  2. Java使用poi导出数据到excel(包括xls和xlsx两种格式)并通过浏览器下载

    情景:将数据导出到excel是java开发常用的功能,数据量不大的时候,xls和xlsx两种格式的文件都行,但是数据量太大的时候就有区别了,xls格式的文件一个sheet页最多只能存六万多条数据,而x ...

  3. java利用poi导出excel功能-附带图片导出

    java利用poi导出excel功能-附带图片导出 写在前面 最近刚离职,闲来无事,于是把上两家公司都有碰到过的需求但都没有去研究实现:即导出带图片的excel报表.于是就折腾了一下这个功能,研究出来 ...

  4. java中poi导出Excel表格(前台流文件接收)

    java中poi导出Excel表格,前端以流的方式接收,而非直接生成文件再下载,解决多台服务器部署后,路径地址不统一导致的下载问题. 生成Excel示例图: 2.代码说明 ① 在上次的基础上增加了底部 ...

  5. Java操作poi导出Excel自定义字体颜色

    Java操作poi导出Excel自定义字体颜色 功能介绍 POI操作Excel 第一步创建一个导出的工具类 整体定义表格字体样式 自定义表格字体样式 总结 功能介绍 Apache POI 是用Java ...

  6. Java的poi导出的excel不能超过256列的解决办法

    Java的poi导出的excel不能超过256列的解决办法 背景 1.现在的情况 2.解决办法 背景 导出时如果列超过256导出就会报错,现在进行解决 1.现在的情况 excel文件名以.xls结尾 ...

  7. Java使用POI读取和写入Excel指南

    Java使用POI读取和写入Excel指南 做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求: 网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃 ...

  8. 使用POI导出数据到excel代码

    使用POI导出数据到excel代码 POM文件 <!-- 导出excel --> <dependency><groupId>org.apache.poi</g ...

  9. java用poi导出word,Java使用POI导出Word文档的操作教程,poiword

    Java使用POI导出Word文档的操作教程,poiword 一.主要pom依赖 org.apache.poi poi-ooxml 3.16 二.需要导出word模板 三.相关导出代码 package ...

最新文章

  1. Spring Boot 异步请求和异步调用
  2. iOS开发中各种关键字的区别
  3. CodeForces - 1335E2 Three Blocks Palindrome (hard version)(思维)
  4. 网易严选Java开发三面面经:南京黑马java培训怎么样
  5. hadoop相关随记
  6. android--多线程,android多线程
  7. 极限挑战logo的制作教程
  8. css样式,层叠顺序属性z-index
  9. LabVIEW FPGA PCIe开发宝典-实战篇:实验63:PCIe DMA+16位8通道ADC(模拟数据采集卡)
  10. 烽火吉比特HG261GU获取超级密码教程
  11. Office KMS主机搭建
  12. Android 关于推送通知还需要一些其他的设置问题,最新高频Android笔试题分享
  13. ps中怎么导出tif_TIF图片太大难以上传?
  14. 香港各个大学计算机类专业
  15. 企业邮箱部署SSL证书
  16. 连载《阿里巴巴·马云》4 : 他就像一个鬼鬼祟祟的坏人
  17. 2021年福建高考成绩什么时候可以查询,2021年福建高考成绩排名及成绩公布时间什么时候出来...
  18. win7右键计算机没有注册类,win7系统提示没有注册类别如何解决
  19. 【经验贴】用最土的手法,最高调的绕过反爬
  20. IPA 包不经过APP Store直接发布到网站供用户下载安装

热门文章

  1. C语言编程精髓读书笔记(怎样有效地使用断言和避免自由主义编码)
  2. Springboot 项目整合自定义日志文件
  3. 今天给大家带来满满的干货:华为的薪资与奖金
  4. oracle启用amm,Oracle11g自动内存管理(AMM)相关的初始化参数
  5. 手机app逆向、渗透测试基础工具介绍
  6. SEO人员,怎么将网站关键词排进SERP前十名?
  7. Linux mint 换中文字体,Linux mint 全局字体不统一,楷体无法更换问题
  8. PPTP配置实例(HiPER ReOS 2008 ×××配置手册)
  9. 我在北京找工作(六):备战阿里巴巴java笔试2:前人的阿里总结
  10. 《互联网时代》第四集 再构