java在excel里插入文字数据和图片(JXL方式)

2024-06-17 00:32

本文主要是介绍java在excel里插入文字数据和图片(JXL方式),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如题所示,这里讲述下如何通过JXL包在excel里插入文字数据以及图片。

这里先展示下后续文章里要提到的1.xls(模板文件)和2.xls(导出文件)

        1.xls:


2.xls(空白的excel):


要导入的图片(320*240):

附上代码:

<span style="font-size:14px;">package com.test.http;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableImage;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;import org.junit.Test;public class ExcelTest {@Testpublic void portExcel() {OutputStream os = null;WritableWorkbook wbook = null;InputStream is = null;try {//获取输入流is = new FileInputStream("C:/Users/test/Desktop/1.xls");//获取输出流os = new FileOutputStream("C:/Users/test/Desktop/2.xls");//创建WritableWorkbook对象wbook = Workbook.createWorkbook(os, Workbook.getWorkbook(is));//获取sheet对象WritableSheet sheet = wbook.getSheet(0);//初始化行int row = 0;//初始化列int col = 0;col = 0;row++;//图片文件/*** <span style="color:#ff0000;">注意:jxl里插入图片,图片必须为png格式</span>* (我这里图片比例为4:3, 图片那列,列宽是在1.xls里设置好的,行高在代码里设置)*/File imgFile = new File("C:/Users/test/Desktop/456.png");sheet.addCell(new Label(col++, row, "123456789"));sheet.addCell(new Label(col++, row, "张三"));sheet.addCell(new Label(col++, row, "男"));sheet.addCell(new Label(col++, row, "37053318580536451X"));sheet.addCell(new Label(col++, row, "李四"));sheet.addCell(new Label(col++, row, "鲁A99999"));sheet.addCell(new Label(col++, row, "18888888888"));sheet.addCell(new Label(col++, row, "2016-04-12 14:09:09"));sheet.addCell(new Label(col++, row, "2016-05-15 13:11:45"));sheet.addCell(new Label(col++, row, "来此厂参观"));/**WritableImage(double x,double y,double width,double height,java.io.File image)* x - the column number at which to position the image 图片左上角位置为多少列* y - the row number at which to position the image 图片左上角位置为多少行* width - the number of columns cells which the image spans 图片宽度在excel里占据多少列* height - the number of rows which the image spans 图片宽度在excel里占据多少行* image - the source image file 图片文件地址* */WritableImage image = new WritableImage(col++, row, 1, 1, imgFile);sheet.setRowView(row, 1700, false); //设置行高// 把图片插入到sheetsheet.addImage(image);//          如果需要插入多张图片,则按下面的方式继续添加
//          WritableImage image2 = new WritableImage(10, 2, 1, 1, imgFile);
//          sheet.addImage(image);//设置行高wbook.write();} catch (Exception e) {e.printStackTrace();} finally {try {if (is != null) {is.close();}if (wbook != null) {wbook.close();}if (os != null) {os.flush();os.close();}} catch (WriteException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}}</span>
最后附上执行以上代码后的2.xls(因图片上传到博客里有点压缩,实际效果图片在单元格里以4:3的比例显示):



这篇关于java在excel里插入文字数据和图片(JXL方式)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1067985

相关文章

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

Django中的函数视图和类视图以及路由的定义方式

《Django中的函数视图和类视图以及路由的定义方式》Django视图分函数视图和类视图,前者用函数处理请求,后者继承View类定义方法,路由使用path()、re_path()或url(),通过in... 目录函数视图类视图路由总路由函数视图的路由类视图定义路由总结Django允许接收的请求方法http

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

Python yield与yield from的简单使用方式

《Pythonyield与yieldfrom的简单使用方式》生成器通过yield定义,可在处理I/O时暂停执行并返回部分结果,待其他任务完成后继续,yieldfrom用于将一个生成器的值传递给另一... 目录python yield与yield from的使用代码结构总结Python yield与yield

pandas数据的合并concat()和merge()方式

《pandas数据的合并concat()和merge()方式》Pandas中concat沿轴合并数据框(行或列),merge基于键连接(内/外/左/右),concat用于纵向或横向拼接,merge用于... 目录concat() 轴向连接合并(1) join='outer',axis=0(2)join='o

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的