java代码操作excel有哪些jar包可使用呢?

乔欣 Java经验 发布时间:2023-02-18 09:58:58 阅读数:9366 1
下文笔者讲述使用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;
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202302/16766865475845.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者