Easy-Xls <a href="http://git.oschina.net/free/EasyXls#%E6%95%B4%E4%BD%93%E9%85%8D%E7%BD%AE"></a>整体配置<a href="http://git.oschina.net/free/EasyXls#%E5%88%97column%E9%85%8D%E7%BD%AE" 快捷方便的Excel导入导出工具

程序名称:Easy-Xls <a href="http://git.oschina.net/free/EasyXls#%E6%95%B4%E4%BD%93%E9%85%8D%E7%BD%AE"></a>整体配置<a href="http://git.oschina.net/free/EasyXls#%E5%88%97column%E9%85%8D%E7%BD%AE"

授权协议: Apache

操作系统: 跨平台

开发语言: Java

Easy-Xls <a href="http://git.oschina.net/free/EasyXls#%E6%95%B4%E4%BD%93%E9%85%8D%E7%BD%AE"></a>整体配置<a href="http://git.oschina.net/free/EasyXls#%E5%88%97column%E9%85%8D%E7%BD%AE" 介绍

EasyXls

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

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

EasyXls特点

  1. 支持xls转换为List对象

  2. 支持xls转换为List对象

  3. 支持List转换为xls

  4. 支持List转换为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指定类型。

Easy-Xls <a href="http://git.oschina.net/free/EasyXls#%E6%95%B4%E4%BD%93%E9%85%8D%E7%BD%AE"></a>整体配置<a href="http://git.oschina.net/free/EasyXls#%E5%88%97column%E9%85%8D%E7%BD%AE" 官网

http://git.oschina.net/free/EasyXls

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


BlazeDS 是一个基于服务器的Java 远程控制(remoting)和Web消息传递(messaging)技术, 它能够使得后端的Java应用程序和运行在浏览器上的Adobe
OVal 是一个可扩展的Java对象数据验证框架,验证的规则可以通过配置文件、Annotation、POJOs 进行设定。可以使用纯 Java
Volta 是一套开发工具,专为开发分布式、实时系统应用。它包括级联,控制流分析工具,
OpenDDS 是一个开源的 C++ 实现的 对象管理组织 OMG 的 数据分布式服务 (DDS) 。OpenDDS利用自适应通信环境(ACE)提供一个跨平台的环境。
JADE (Java Agent DEvelopment Framework) 是一个完全用Java语言实现的软件框架。它通过一个兼容 FIPA
FastMM ,在D2006和2007中已代替了原来的内存管理器。
WebRTC 是一项在浏览器内部进行实时视频和音频通信的技术,是谷歌于2010年以6820万美元收购VoIP软件开发商 Global IT
gwtwiki - The Java Wikipedia API (Bliki engine),是一个 Wikipedia/Mediawiki 语法解析器,可以把 wiki 的文本转换成 HTML。它支持 wiki 标签,例如 bold, italic, headers, nowiki,
Esper 是一个复杂事件处理组件(CEP - Complex Event Processing),它有 Java 版本和 .NET 版本(NEsper)。
LuaTinker 的作者是Kwon-il Lee韩国人写的,最新的版本是0.2.C,这个C++ wrapper For Lua能够方便和
各种语言环境下gitignore文件的一个集合。
简介 ContentExtractor 是一个开源的网页正文抽取工具,用JAVA实现,具有非常高的抽取精度。
SwiftRandom 是一组函数集合,可以从不同的分布生成伪随机变量。 使用示例: //Single pseudorandom normal variable
java-linq-examples 是 101 个 LINQ 示例的 Java 移植版本。Android 兼容 Java 1.7. 此外还有以下语言移植版本:
mal,Make a Lisp,顾名思义,用图灵完备的编程语言写 Lisp 交互器,目前已经有35种不同语言的实现:
一个 Go 语言实现的中国行政区划查询工具。 介绍 最新中国行政区划,数据来源:http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201608/t20160809_1386477.html
Teaf 简介 Tencent Easy ACE Framework,基于 ACE 的高性能轻量级服务框架,单进程多线程模型,支持 select/epoll 等多种网络
介绍 让 Guzzle 支持 Swoole 协程,这个项目目的就是这么简单明了! Guzzle-Swoole 是 Guzzle 的处理器(Handler),并没有对 Guzzle 本身代码进行修改,理论上可以兼容后续版本。
goproxy-shell goproxy服务端部署脚本 使用方法 wget --no-check-certificate https://github.com/sjz123321/goproxy-
1. pyMd2Doc介紹(pip版本) 利用python将markdown转换成带可收缩、可跳转到文本内容的目录文档。