当前位置: 首页 > 软件库 > 程序开发 > Excel开发包 >

Excel4J

基于 poi 的 Excel 操作组件
授权协议 Apache-2.0
开发语言 Java
所属分类 程序开发、 Excel开发包
软件类型 开源软件
地区 国产
投 递 者 子车文康
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Excel4J 是基于 poi 的 excel 操作组件,大大减少代码量,提高开发效率。

基于注解

@ExcelField(title = "学号", order = 1)
private Long id;
@ExcelField(title = "姓名", order = 2)
private String name;
@ExcelField(title = "入学日期", order = 3)
private Date date;
@ExcelField(title = "班级", order = 4)
private Integer classes;
@ExcelField(title = "是否开除", order = 5)
private String expel;

读取Excel快速实现

待读取Excel(截图)

待读取Excel截图

转换函数(/src/test/java/base/Excel2Module.java#excel2Object2)

   @Test
   public void excel2Object2() throws Exception {

       String path = "D:\\IdeaSpace\\Excel4J\\src\\test\\resource\\students_02.xlsx";

       // 不基于注解,将Excel内容读至List>对象内
       List> lists = ExcelUtils.getInstance().readExcel2List(path, 1, 3, 0);
       System.out.println("读取Excel至String数组:");
       for (List list : lists) {
           System.out.println(list);
       }
       // 基于注解,将Excel内容读至List对象内
       List students = ExcelUtils.getInstance().readExcel2Objects(path, Student2.class, 0);
       System.out.println("读取Excel至对象数组(支持类型转换):");
       for (Student2 st : students) {
           System.out.println(st);
       }
   }

转换结果

读取Excel至String数组:
[1.0000000000001E13, 张三, 2016/01/19, 101.0, 是]
[1.0000000000002E13, 李四, 2017-11-17 10:19:10, 201.0, 否]
[1.0000000000004E13, 王二, 2017/11/17, 301.0, 否]
读取Excel至对象数组(支持类型转换):
Student2{id=10000000000001, name='张三', date=Tue Jan 19 00:00:00 CST 2016, classes=101, expel='是'}
Student2{id=10000000000002, name='李四', date=Fri Nov 17 10:19:10 CST 2017, classes=201, expel='否'}
Student2{id=10000000000004, name='王二', date=Fri Nov 17 00:00:00 CST 2017, classes=301, expel='否'}

导出Excel

不基于模板快速导出

导出函数(/src/test/java/base/Module2Excel.java#testList2Excel)

    @Test
    public void testList2Excel() throws Exception {

        List> list2 = new ArrayList<>();
        List header = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            List _list = new ArrayList<>();
            for (int j = 0; j < 10; j++) {
                _list.add(i + " -- " + j);
            }
            list2.add(_list);
            header.add(i + "---");
        }
        ExcelUtils.getInstance().exportObjects2Excel(list2, header, "D:/D.xlsx");
    }

导出效果(截图)

无模板导出截图

基于模板List导出

导出函数(/src/test/java/base/Module2Excel.java#testObject2Excel)

    @Test
    public void testObject2Excel() throws Exception {

        String tempPath = "D:\\IdeaSpace\\Excel4J\\src\\test\\resource\\normal_template.xlsx";
        List list = new ArrayList<>();
        list.add(new Student1("1010001", "盖伦", "六年级三班"));
        list.add(new Student1("1010002", "古尔丹", "一年级三班"));
        list.add(new Student1("1010003", "蒙多(被开除了)", "六年级一班"));
        list.add(new Student1("1010004", "萝卜特", "三年级二班"));
        list.add(new Student1("1010005", "奥拉基", "三年级二班"));
        list.add(new Student1("1010006", "得嘞", "四年级二班"));
        list.add(new Student1("1010007", "瓜娃子", "五年级一班"));
        list.add(new Student1("1010008", "战三", "二年级一班"));
        list.add(new Student1("1010009", "李四", "一年级一班"));
        Map data = new HashMap<>();
        data.put("title", "战争学院花名册");
        data.put("info", "学校统一花名册");
        // 基于模板导出Excel
        ExcelUtils.getInstance().exportObjects2Excel(tempPath, 0, list, data, Student1.class, false, "D:/A.xlsx");
        // 不基于模板导出Excel
        ExcelUtils.getInstance().exportObjects2Excel(list, Student1.class, true, null, true, "D:/B.xlsx");

    }

导出模板(截图)

导出模板截图

基于模板导出结果(截图)

基于模板导出结果图

不基于模板导出结果(截图)

不基于模板导出结果图

基于模板Map>导出

导出函数(/src/test/java/base/Module2Excel.java#testMap2Excel)

    @Test
    public void testMap2Excel() throws Exception {

        Map classes = new HashMap<>();

        Map data = new HashMap<>();
        data.put("title", "战争学院花名册");
        data.put("info", "学校统一花名册");

        classes.put("class_one", new ArrayList() {{
            add(new Student1("1010009", "李四", "一年级一班"));
            add(new Student1("1010002", "古尔丹", "一年级三班"));
        }});
        classes.put("class_two", new ArrayList() {{
            add(new Student1("1010008", "战三", "二年级一班"));
        }});
        classes.put("class_three", new ArrayList() {{
            add(new Student1("1010004", "萝卜特", "三年级二班"));
            add(new Student1("1010005", "奥拉基", "三年级二班"));
        }});
        classes.put("class_four", new ArrayList() {{
            add(new Student1("1010006", "得嘞", "四年级二班"));
        }});
        classes.put("class_six", new ArrayList() {{
            add(new Student1("1010001", "盖伦", "六年级三班"));
            add(new Student1("1010003", "蒙多", "六年级一班"));
        }});

        ExcelUtils.getInstance().exportObject2Excel("D:\\IdeaSpace\\Excel4J\\src\\test\\resource\\map_template.xlsx",
                0, classes, data, Student1.class, false, "D:/C.xlsx");
    }

导出模板(截图)

导出模板截图

导出结果(截图)

导出结果图

  • excel4j是基于POI封装的操作excel的工具,可以方便的对excel进行读写。 1、读取 可以直接读取结果到List<List<String>>   List<List<String>> lists = ExcelUtils.getInstance().readExcel2List(path,0,0,0); 四个参数代表excel路径、从第几行开始读取(0是第一行)、一共读取几行(默认所有

  • 一.如何引入? 1.使用maven管理工程,在pom.xml添加相关依赖 <dependency>     <groupId>com.github.crab2died</groupId>     <artifactId>Excel4J</artifactId>     <version>3.0.0-Alpha</version> </dependency> 二、如何使用? 2.1、处理Excel

  • 基于poi的Excel操作组件,大大减少代码量,提高开发效率。 开源中国介绍: https://www.oschina.net/news/90045/excel4j-2-1-0 https://www.oschina.net/p/excel4j 码云地址:https://gitee.com/Crab2Died/Excel4J

  • 工作中有时候我们需要使用Apache的POI来读写Excel文件,而dom4j则用来解析或者生成Xml文件,由于涉及到IO流,所以又使用了commons-io提供的IOUtils来关闭流。 需要的Jar包 POI和dom4j需要的jar包 一个应用POI和dom4j的简单例子 import java.io.File; import java.io.FileInputStream; import j

  • 1、documents4j 简介 document4j是一个用来进行文档格式转换的Java工具库,它通过借助本机中支持指定文件格式到目标文件格式转换的应用,来实现整个转换的过程。 document4j 实现了Microsoft Word、Excel的适配功能,可以将docx文件转换为pdf文件,并且在这个过程中不会出现非微软文件转换出现的扭曲情况。 document4j提供了一个简单的API,并且

  • package function; import java.io.*; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.apache.poi.xssf.user

  • 1 private boolean isRowEmpty(Row row){ 2 for (int c = row.getFirstCellNum(); c < row.getLastCellNum(); c++) { 3 Cell cell = row.getCell(c); 4 if (cell != null && c

  • ExcelUtils所需要的pom依赖如下,该类存在于com.github.crab2died下: <dependency> <groupId>com.github.crab2died</groupId> <artifactId>Excel4J</artifactId> <version>3.0.0</version> </dependency> 1.readExcel2

  • 错误分析 1、错误信息 Exception in thread "main" java.lang.NoSuchMethodError: org.apache.logging.log4j.Logger.atDebug()Lorg/apache/logging/log4j/LogBuilder; at org.apache.poi.openxml4j.opc.PackageRelationshipC

 相关资料
  • 了解如何在Java编程中使用POI Excel。 以下是示例 - 如何使用Java创建空白Excel工作表。 如何使用Java将数据写入Excel工作表。 如何使用Java在电子表格中创建不同类型的单元格。 如何使用Java将不同样式应用于电子表格中的单元格。 如何使用Java将字体应用于单元格的内容。 如何使用Java为单元格中的文本设置方向。 如何使用Java向单元格的内容添加超链接。 如何使

  • 基于FMDB的数据库增删改查Demo。其中包括 statusBar 上显示Log的用法。仅支持ARC。比较适合新手。 [Code4App.com]

  • 本文向大家介绍基于PHP函数的操作方法,包括了基于PHP函数的操作方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇基于PHP函数的操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 我想用C ++编写一个包含系统调用的跨平台函数。我可以检查哪些条件编译标志来确定要为其编译代码的操作系统?我对使用Visual Studio和GCC的Windows和Linux感兴趣。 我认为应该看起来像这样: 问题答案: 我的gcc(4.3.3)定义了以下与Linux相关的预定义宏: 在VC ++(和许多其他Win32编译器)下,还有几个用于标识平台的预定义宏,最著名的是_WIN32

  • 我正在尝试将Excel(.xls,.xlsx)文件转换为CSV,使用 对于xlsx到CSV