Java使用POI导出图片的Excel
文章目录
- 依赖
- 导包
- 测试类
- 打开查看
- 结合实际项目使用
依赖
<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相关推荐
- java使用POI导出图片到Excel
个人学习记录 目录 个人学习记录 1. 使用POI导出图片到Excel中,Excel格式为xls 2. 使用POI导出图片到Excel中,Excel格式为xlsx,图片设置边距 3. 获取图片,生成B ...
- Java使用poi导出数据到excel(包括xls和xlsx两种格式)并通过浏览器下载
情景:将数据导出到excel是java开发常用的功能,数据量不大的时候,xls和xlsx两种格式的文件都行,但是数据量太大的时候就有区别了,xls格式的文件一个sheet页最多只能存六万多条数据,而x ...
- java利用poi导出excel功能-附带图片导出
java利用poi导出excel功能-附带图片导出 写在前面 最近刚离职,闲来无事,于是把上两家公司都有碰到过的需求但都没有去研究实现:即导出带图片的excel报表.于是就折腾了一下这个功能,研究出来 ...
- java中poi导出Excel表格(前台流文件接收)
java中poi导出Excel表格,前端以流的方式接收,而非直接生成文件再下载,解决多台服务器部署后,路径地址不统一导致的下载问题. 生成Excel示例图: 2.代码说明 ① 在上次的基础上增加了底部 ...
- Java操作poi导出Excel自定义字体颜色
Java操作poi导出Excel自定义字体颜色 功能介绍 POI操作Excel 第一步创建一个导出的工具类 整体定义表格字体样式 自定义表格字体样式 总结 功能介绍 Apache POI 是用Java ...
- Java的poi导出的excel不能超过256列的解决办法
Java的poi导出的excel不能超过256列的解决办法 背景 1.现在的情况 2.解决办法 背景 导出时如果列超过256导出就会报错,现在进行解决 1.现在的情况 excel文件名以.xls结尾 ...
- Java使用POI读取和写入Excel指南
Java使用POI读取和写入Excel指南 做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求: 网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃 ...
- 使用POI导出数据到excel代码
使用POI导出数据到excel代码 POM文件 <!-- 导出excel --> <dependency><groupId>org.apache.poi</g ...
- java用poi导出word,Java使用POI导出Word文档的操作教程,poiword
Java使用POI导出Word文档的操作教程,poiword 一.主要pom依赖 org.apache.poi poi-ooxml 3.16 二.需要导出word模板 三.相关导出代码 package ...
最新文章
- Spring Boot 异步请求和异步调用
- iOS开发中各种关键字的区别
- CodeForces - 1335E2 Three Blocks Palindrome (hard version)(思维)
- 网易严选Java开发三面面经:南京黑马java培训怎么样
- hadoop相关随记
- android--多线程,android多线程
- 极限挑战logo的制作教程
- css样式,层叠顺序属性z-index
- LabVIEW FPGA PCIe开发宝典-实战篇:实验63:PCIe DMA+16位8通道ADC(模拟数据采集卡)
- 烽火吉比特HG261GU获取超级密码教程
- Office KMS主机搭建
- Android 关于推送通知还需要一些其他的设置问题,最新高频Android笔试题分享
- ps中怎么导出tif_TIF图片太大难以上传?
- 香港各个大学计算机类专业
- 企业邮箱部署SSL证书
- 连载《阿里巴巴·马云》4 : 他就像一个鬼鬼祟祟的坏人
- 2021年福建高考成绩什么时候可以查询,2021年福建高考成绩排名及成绩公布时间什么时候出来...
- win7右键计算机没有注册类,win7系统提示没有注册类别如何解决
- 【经验贴】用最土的手法,最高调的绕过反爬
- IPA 包不经过APP Store直接发布到网站供用户下载安装
热门文章
- C语言编程精髓读书笔记(怎样有效地使用断言和避免自由主义编码)
- Springboot 项目整合自定义日志文件
- 今天给大家带来满满的干货:华为的薪资与奖金
- oracle启用amm,Oracle11g自动内存管理(AMM)相关的初始化参数
- 手机app逆向、渗透测试基础工具介绍
- SEO人员,怎么将网站关键词排进SERP前十名?
- Linux mint 换中文字体,Linux mint 全局字体不统一,楷体无法更换问题
- PPTP配置实例(HiPER ReOS 2008 ×××配置手册)
- 我在北京找工作(六):备战阿里巴巴java笔试2:前人的阿里总结
- 《互联网时代》第四集 再构