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

Easy-Xls

快捷方便的Excel导入导出工具
授权协议 Apache
开发语言 Java
所属分类 程序开发、 Excel开发包
软件类型 开源软件
地区 国产
投 递 者 漆雕誉
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

EasyXls

使用EasyXls可以使你很方便的操作Excel。本项目目的是解决简单的(不带任何样式)xls文件的导入导出。  

处理XML时由于使用了JAXB,所以需要使用jdk1.6u14以上版本。  JAXB处理中文xml时容易出现乱码,因此这里限制XML为GBK编码,在Windwos中的保存格式为ANSI即可。  

EasyXls特点

  1. 支持xls转换为List<Pojo>对象

  2. 支持xls转换为List<Map>对象

  3. 支持List<Pojo>转换为xls

  4. 支持List<Map>转换为xls

  5. 支持xml配置形式

  6. 支持java编码创建Config配置

xml配置向导

项目中包含一个简单的xml生成向导,使用该项导时,需要在项目中创建main方法并调用如下方法:

EasyXls.openGenerater();

支持的列类型

  • int
  • long
  • float
  • double
  • java.lang.Integer
  • java.lang.Long
  • java.lang.Float
  • java.lang.Double
  • java.util.Date
  • java.math.BigDecimal

项目依赖

<dependency>
  <groupId>net.sourceforge.jexcelapi</groupId>
  <artifactId>jxl</artifactId>
  <version>2.6.12</version>
</dependency>


配置项说明

有一些属性只在写入到xls时有效,这些会标记【写】,有些只在读取xls时使用的标记【读】,通用的不做标记。

整体配置

  • cache:使用xml配置时可以选择是否启用缓存,启用缓存后不会重复解析xml配置文件,这样会提高反复使用的效率。但是如果修改了xml配置,新的配置不会生效。

  • sheet:sheet标签的名字【写】

  • class:excel对应的POJO类或Map

  • sheetNum:读取第几个sheet页【读】

  • startRow:从第几行开始读取【读】

  • maxRow:最大读取行,超出行数的不进行读取【读】

列Column配置

  • name:对应的java字段名

  • header:对应的excel标题名【写】

  • type:对应列的类型,不设置时,如果使用的POJO,会自动匹配字段类型。如果使用的Map,使用xls自身的格式【读】

  • width:对应列的宽度(单位:像素)【写】

  • key:必须包含值的列,如果该列为空,就会停止往下读取。主要防止读取空白行,只有第一个设置key=true的列有效【读】

示例

以下代码均来自测试代码(test目录下)

部分xml:

<?xml version="1.0" encoding="GBK" standalone="yes"?>
<excel>
  <cache>false</cache>
  <sheet>一次性费用</sheet>
  <class>po.Charges</class>
  <sheetNum>0</sheetNum>
  <startRow>1</startRow>
  <columns>
    <column>
      <name>year</name>
      <header>年度</header>
      <type>java.lang.Integer</type>
      <width>50</width>
    </column>
    <column>
      <name>ownersname</name>
      <header>户主姓名</header>
      <type>java.lang.String</type>
      <width>120</width>
    </column>
  </columns>
</excel>


使用xml配置读取xls:

@Test
public void testMap() {
    try {
        List list = EasyXls.xls2List(
                Xls2ListTest.class.getResource("/ChargesMap.xml").getPath(),
                new File(Xls2ListTest.class.getResource("2.xls").getPath()));
        System.out.println(list);
    } catch (Exception e) {
        e.printStackTrace();
    }
}


使用java代码创建Config并读取xls:

@Test
public void testConfig() {
    try {
        //创建一个配置
        ExcelConfig config = new ExcelConfig.Builder(Charges.class)
                .sheetNum(0)
                .startRow(1)
                .key("name")
                .addColumn("year", "communityid", "roomno", 
                        "ownersid", "ownersname", "property").build();
        List list = EasyXls.xls2List(config, 
                        Xls2ListTest.class.getResourceAsStream("2.xls"));
        for (int i = 0; i < list.size(); i++) {
            System.out.println(((Charges) list.get(i)).getOwnersname());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

这里对列的处理很简单,excel文件的列和column的列一一对应即可。


使用xml配置读取,使用Config方式写入到新的excel文件:

@Test
public void testMap2() {
    InputStream is = Xls2ListTest.class.getResourceAsStream("2.xls");
    try {
        String xmlPath = Xls2ListTest.class.getResource("/ChargesMap.xml").getPath();
        List list = EasyXls.xls2List(xmlPath, is);

        Map map = new HashMap();
        map.put("year", 2013);
        map.put("ownersname", "测试户主");
        list.add(map);

        EasyXls.list2Xls(list, xmlPath, "d:/", "testMap.xls");

        ExcelConfig config = new ExcelConfig.Builder(Charges.class)
                .sheetNum(0)
                .startRow(1)
                .separater(",")
                .key("name")
                .addColumn("year,年度", "communityid,小区ID",
                        "roomno,房号", "ownersid,户主ID",
                        "ownersname,户主姓名", "property,物业费").build();
        EasyXls.list2Xls(config, list, "d:/", "testMap2.xls");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

这里为了调用方便,先使用.separater(",")方法设定分隔符(默认为英文逗号),然后在addColumn方法中使用如"year,年度"这种方式赋值。

这种赋值方式最多支持4个参数,分别对应name,header,width,type,如:

"year,年度,200,java.lang.Integer"

使用POJO类时不需要写type,当使用Map时,可以使用type指定类型。


  • EasyXls 使用EasyXls可以使你很方便的操作Excel。本项目目的是解决简单的(不带任何样式)xls文件的导入导出。   处理XML时由于使用了JAXB,所以需要使用jdk1.6u14以上版本。  JAXB处理中文xml时容易出现乱码,因此这里限制XML为GBK编码,在Windwos中的保存格式为ANSI即可。   项目地址:http://git.oschina.net/free/Eas

  • 文档说明参考:http://easypoi.mydoc.io/#text_217704 easy-poi是在传统poi基础上进行了封装和简化,非常易于上手。 一、导入pom easy-poi依赖apach的commons-collections4 <!--easy-poi--> <dependency> <groupId>cn.afterturn</groupId> <artifa

  • 1.pom.xml <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-base</artifactId> <version>4.2.0</version> </dependency> <!-- https://mvn

  • easy-excel批量导出 前言 最近遇到个用户数据批量导出excel的需求,第一次看到这个需求大家第一时间想到的应该大多都是easy-excel这个框架吧,哈哈,我第一时间想到的也是这个框架。 但是对于少量的数据,比如有10个用户这样的数据肯定没有啥太大的问题,但是对于百万级数据可能就会有问题,总不能一次性吧100w数据从数据库里面查出来吧,这无疑是sql炼狱,同时也面临着oom的风险,面对一

  • 需求:使用easy-poi导入excel数据 实现: 一:引入依赖(这里因为之前引入的有poi,会导致版本冲突,所以做了排除;如果正常引入无需排除) <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-spring-boot-starter</artifactId> <version>

  • // 导出路径 String outPath = "E:\\文件.xls"; // 导出excel表 Workbook workbook = ExcelExportUtil.exportExcel( new ExportParams("标题", "sheet名"), Build.class, buildBlgMacInfo ); // 设置表格样式 // 设置字体样

  • 引入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>1.1.2-beta5</version> </dependency> 写一个样式类实现Easy-Excel写回调 public class ExcelBui

  • 参考文章: https://www.jianshu.com/p/96cd60059aae  规则引擎调研 - 人在江湖之诗和远方 - 博客园  java开源规则引擎比较_常用规则引擎比较分析_学校砍了我的树的博客-CSDN博客 Drools等规则引擎技术对比分析 - xuzhujack - 博客园 常见开源规则引擎对比分析_大海梦想的博客-CSDN博客_开源规则引擎 不同规则引擎的对比_qq_44

  • 需要引入的jar包 //excel导出 implementation group: 'cn.afterturn', name: 'easypoi-base', version: '4.2.0' implementation group: 'cn.afterturn', name: 'easypoi-web', version: '4.2.0' implementation

  • package com.heytap.mall.marketing.core.utils; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.metadata.BaseRowModel; import com.alibaba.excel.metadata.Sheet; import com.alibaba.excel

  • easy-poi通过下载方式导出 //放入easyPoi中 导出 ExportParams params = new ExportParams("统计表", "统计表", ExcelType.XSSF); params.setFreezeCol(2); //这个是列比较多时,固定2列 //ExportEntity 导出的模板,表头标题可通过@Excel(name="名称")设置 //userLi

 相关资料
  • 问题内容: 自从我上次使用Eclipse已经有一段时间了。我曾经喜欢这个方便的快捷键,该快捷键将所有导入添加到源文件的顶部,但是我忘记了它。有谁知道这个捷径是什么? 问题答案: + + (<-‘O’不是零) 注意:此快捷方式还会删除未使用的导入。

  • 在eclipse中,它是ctrl-shift-o,自动导入所有内容。但我怎么能在Xamarin做到这一点?我不记得每个包,也没有那些灯泡,它们在Eclipse中可以帮助我“快速修复”问题。 那么,有没有什么捷径可以自动导入所有内容或其他方式来自动导入内容呢?

  • 我已经看了如何在Android Studio中用快捷方式自动导入必要的类?但这无济于事。 Ctrl+Alt+O不执行任何操作。 当我按Alt+Enter时,我会得到以下信息: 我也有自动进口,但它不起作用:

  • 本文向大家介绍Asp.Net使用Npoi导入导出Excel的方法,包括了Asp.Net使用Npoi导入导出Excel的方法的使用技巧和注意事项,需要的朋友参考一下 asp.net针对Excel文件的导入与导出是非常常见的功能之一。本文实例讲述了Asp.Net使用Npoi导入导出Excel的方法。分享给大家供大家参考之用。具体方法如下: 在使用Npoi导出Excel的时候,服务器可以不装任何offi

  • 本文向大家介绍java实现Excel的导入、导出,包括了java实现Excel的导入、导出的使用技巧和注意事项,需要的朋友参考一下 一、Excel的导入 导入可采用两种方式,一种是JXL,另一种是POI,但前者不能读取高版本的Excel(07以上),后者更具兼容性。由于对两种方式都进行了尝试,就都贴出来分享(若有错误,请给予指正) 方式一、JXL导入  所需jar包 JXL.jar 方式二、POI

  • 本文向大家介绍asp导出excel文件最简单方便的方法,包括了asp导出excel文件最简单方便的方法的使用技巧和注意事项,需要的朋友参考一下 由于excel软件能识别table格式的数据,所以asp只需要输出table格式的html代码,同时设置好contenttype,增加保存为附件的响应头即可将输出的html代码保存为xls文件。 asp导出excel文件源代码如下: