java代码操作excel有哪些jar包可使用呢?
下文笔者讲述使用java代码操作excel的可用jar包分享,如下所示
excel简介
excel是我们工作中必不可少的一种文档格式 在我们代码编写时,经常需要生成excel,那么java代码如何生成excel呢? 下文将依次介绍生成excel的所使用的jar包,如下所示
jxl
支持Excel95-2000的所有版本 当生成Excel2000标准格式:支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 jxl是纯Java 不依赖Windows系统 运行在Linux下,能够正确处理Excel文件 http://jexcelapi.sourceforge.net/
Apache POI
Apache POI: 是Apache软件基金会的开放源码函式库 POI提供API给Java程序对Microsoft Office格式档案读和写的功能 是我们日常开发中操作excel使用最多的一种方式 主要功能如下: HSSF:提供读写Microsoft Excel格式档案的功能 XSSF:提供读写Microsoft Excel OOXML格式档案的功能 HWPF:提供读写Microsoft Word格式档案的功能 HSLF:提供读写Microsoft PowerPoint格式档案的功能 HDGF:提供读写Microsoft Visio格式档案的功能 官网 https://poi.apache.org/
easyexcel
easyexcel用于解决Apache POI生成excel内存过大的情况 easyExcel API文档 https://www.yuque.com/easyexcel/doc/easyexcel https://github.com/alibaba/easyexcel
easyexcel示例
//TestTemplate.java import java.io.File; import java.util.Arraylist; import java.util.HashMap; import java.util.List; import java.util.Map; import com.alibaba.easyexcel.test.demo.fill.FillData; import com.alibaba.easyexcel.test.util.TestFileUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.enums.WriteDirectionEnum; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.fill.FillConfig; import com.alibaba.excel.write.metadata.fill.FillWrapper; public class TestTemplate { public static void main(String[] args) { // 模板注意 用{} 来表示你要用的变量 如果本来就有"{","}" 特殊字符 用"\{","\}"代替 // {} 代表普通变量 {.} 代表是list的变量 {前缀.} 前缀可以区分不同的list String templateFileName = TestFileUtil.getPath() + "demo" + File.separator + "fill" + File.separator + "composite.xlsx"; //保存的目录 String fileName = "d:/" + System.currentTimeMillis() + ".xlsx"; ExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate(templateFileName).build(); WriteSheet writeSheet = EasyExcel.writerSheet().build(); FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.HORIZONTAL).build(); // 如果有多个list 模板上必须有{前缀.} 这里的前缀就是 data1,然后多个list必须用 FillWrapper包裹 excelWriter.fill(new FillWrapper("data1", data()), fillConfig, writeSheet); excelWriter.fill(new FillWrapper("data1", data()), fillConfig, writeSheet); excelWriter.fill(new FillWrapper("data2", data()), writeSheet); excelWriter.fill(new FillWrapper("data2", data()), writeSheet); excelWriter.fill(new FillWrapper("data3", data()), writeSheet); excelWriter.fill(new FillWrapper("data3", data()), writeSheet); Map<String, Object> map = new HashMap<String, Object>(); map.put("date", "2019年10月9日13:28:28"); excelWriter.fill(map, writeSheet); // 别忘记关闭流 excelWriter.finish(); } private static List<FillData> data() { List<FillData> list = new ArrayList<FillData>(); for (int i = 0; i < 10; i++) { FillData fillData = new FillData(); list.add(fillData); fillData.setName("猫猫"); fillData.setNumber(99); } return list; } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。