Java 5行代码搞定Excel导入导出
场景
在工作中,导出Excel的场景经常出现,比如管理后台导出的功能、批量订正数据库等,在这些场景中的表格数据往往对应数据库的一条记录,表格格式十分简单。但是,类似导入导出都要用不同的代码实现。产品经常给笔者一个Excel表格数据,导入到数据库。每次都要写一堆功能、流程类似的导入导出代码,十分浪费时间。笔者这里是对Apache POI的封装。话不说,我们来体验一下。
使用
创建表格映射对象
@Data
public class Human {
@Column(title = "眼睛颜色")
private String eyeColor;
@Column(title = "头发颜色")
private String hairColor;
}
@Data
@ToString(callSuper = true)
public class Girl extends Human {
@Column(index = 0, title = "姓名")
private String name;
@Column(index = 1, title = "年龄")
private Integer age;
@Column(index = 2, title = "身高")
private Float height;
@Column(index = 2, title = "体重")
private Float weight;
}
导出演示
笔者在这里使用Junit Mock一些数据导出:
@Test
public void export1() {
//将导出文件放到编译文件目录下
String path = FileUtil.findRealPathByClasspath(this.getClass(), "/");
path = path + "excel/Girl_" + TimeUtil.getCurrentSeconds() + ".xlsx";
//mock 2000行数据
List<Girl> girls = this.mockGirls(2000);
//导出到指定文件目录
byte[] bytes = ExcelHelper.instance(Girl.class).input(girls).doExport();
NIOUtil.writeFile(path, bytes);
}
private List<Girl> mockGirls(int size) {
List<Girl> data = new ArrayList<>(size);
for (int i = 0; i < size; i++) {
Girl girl = new Girl();
girl.setName("CY" + i);
girl.setAge(19);
girl.setHeight(1.68F + 0.001F * i);
girl.setWeight(45F + 0.001F * i);
girl.setHairColor("黑色");
girl.setEyeColor("灰色");
data.add(girl);
}
return data;
}
导出结果:
导入演示
笔者拿刚才导出数据进入导入并打印:
@Test
public void import1() {
InputStream is = this.getClass().getResourceAsStream("/excel/Girl.xlsx");
List<Girl> list = ExcelHelper.instance(Girl.class).input(is).doImport();
System.out.println(list);
}
导入结果:
从上述演示看,针对这种简单Excel报表,简单几行代码就能解决,如果你觉得还不错,可以通过Maven引用,或者github下载源码进行引用。
引入
maven
<dependency>
<groupId>com.github.rxyor</groupId>
<artifactId>carp-common-util</artifactId>
<version>1.0.3</version>
</dependency>
github
https://github.com/rxyor/carp.git (记得star, >_>!!!)
智能推荐
Java 实现Excel的导入导出
Java 利用EasyPoi做Excel模板的导入导出操作 项目背景 加入pom依赖 项目Excel模板图 代码实现 首先是实体类定义 Excel 实现导入 Excel的导出 结束语 项目背景 作为一名传统业务的程序员,每天都要不得不面对对各种类型的Excel的操作。想想都让人头疼。尤其是那种表头有的要纵向合并单元格,有的横向单元格合并的Excel,听听就让人头脑发麻。 最近,在做这方面的Exce...
java的导出与导入excel
导出Excel 项目说明: 1、后台框架springboot 2、构建工具gradle 3、前端框架layui 4、jdk版本是11 github源码地址 项目层次结构 相关依赖包 导出excel的工具类 Service层 Controller层 前端页面 最后实现效果 导入excel的工具类(其它方法在上面类中已经写好) 最后把获取的表内容输出到控制台...
Java实现Excel文件导入导出(三)
(一)读写Excel文件的几种常用方式 POI JXL FESTEXCEL 1.POI简介 APache POI是Apache软件基金会开放源码函式库,POI提供API实现对Microsoft Office格式文档进行读写。HSS是Horrible SpreadSheet Format的缩写,翻译为“讨厌的电子表格格式格式”。通过HSSF可以使用纯Java代码来读取、写入、...
JAVA对Excel的导出与导入
相关jar包:jxl 使用pom配置导入 Excel的导出 示例代码 Excel文件内容: Excel的导入 Excel文件内容: 示例代码: 注:jxl无法对后缀为.xlsx的Excel文件导入,只能导入.xls格式:会报: jxl.read.biff.BiffException: Unable to recognize OLE stream异常...
猜你喜欢
新发的日常小实验——使用IETester测试不同IE版本的浏览器,测试网页JS的兼容性(console未定义兼容测试)
文章目录 一、痛点:IE兼容测试 二、关于IETester 三、IETester下载 四、写个html测试js的console接口 五、测试结果 六、js兼容处理 一、痛点:IE兼容测试 之前使用.Net的Winform桌面应用框架做了一个PC版的迷你浏览器(使用IE内核),方便拉起网页支付。 有用户反馈打开支付页面报了如下的错:“console”未定义 到底是多么老旧的I...
linux下搭建nginx及配置
文章目录 下载nginx 解压nginx资源包 准备编译环境 安装编译 查找安装路径并启动nginx 浏览器访问 下载nginx 下载地址:https://nginx.org/en/download.html 这里用的是nginx-1.16.1版本 解压nginx资源包 准备编译环境 安装编译 查找安装路径并启动nginx 浏览器访问 http://IP...
腾讯云+tipask快速搭建基于laravel的CMS网站
一、购买腾讯云服务器,服务市场->基础环境->选择WordPress平台镜像 二、按照tipask教程安装 tipask官方教程地址https://wenda.tipask.com/article/22 官方教程对新手不太友好,我整理如下: 1.ftp上传文件 云服务器镜像装载完毕后,浏览器访问服务器公网ip,点击获取权限后会下载服务器相关的文件 浏览器访问host url,根据所给的...
ElasticSearch入门教程
什么是ElasticSearch 基于Apache Lucene构建的开源搜索引擎 采用Java编写,提供简单易用的RESTFul API 轻松的横向扩展,可支持BP级的结构化和非结构化的数据处理 可应用场景 海量数据分析引擎 站内搜索引擎 数据仓库 一线公司实际应用场景 英国卫报 - 实时分析公众对文章的回应 维基百科、GitHub-站内实时搜索 百度 - 实时日志监控平台 安装 Windows...
小程序明明已经分包了,为啥没有大小没有变???
为什么要分包 真机预览时出现大于2M,无法预览。 对项目进行规整划分 如何分包 实际操作 先将需要分包的文件拷贝到小程序根目录下 在app.json中配置分包结构(如图) 修改被分包中的引用路径,如图片资源、导航URL 可以设置分包的在哪个页面加载 图中表示在进入login页面进行下载设置的分包,all表示在所有网络下。 失败解决!分包了为啥还是提示大小超过2M 分包的文件内所引用的外部文件也必须...