java excel to bean_GitHub - giantray/ExcelTool: 灵活简单,将javabean数据转换成excel

##概述

通过对Jxl包的简单封装,这个组件提供了一个更加灵活、简单地生成excel表格的方法。

在生成excel时,你只需编码,把数据塞到指定的bean中,之后生成excel的其他细节,交给这个工具。这个工具已经对excel样式做了较佳的设置,可以省却你调试excel样式的痛苦

##特性

解耦 在jxl包基础上做了小扩展,程序员只要专注塞数据——把数据塞到我们提供的bean。之后bean转excel,由这个组件搞定。该组件已经优化了表格样式,可以省却调试excel样式的痛苦

灵活排序 可以很方便地调整每列的先后顺序

宽度自适应 针对中文做优化,确保excel表格能依据文字宽度确定每个表格宽度

值类型自动识别 检测每个表格的内容,是数字、字符串、还是时间,依据类型的不同,做人性化、合理的显示

##引入

maven依赖

com.github.giantray

exceltool

0.95

当前版本为0.95

##如何使用

提供了两种使用方式,一种是基于传参的方式,一种是基于注解的方式。

###2、基于传参

所谓基于参数,是指excel中要展示的列,列名,顺序等通过构建一个参数bean来指定。

2.1、在MainTest类中,提供了一个测试类,为你演示了如何生成,建议您直接看看测试类中的demo。下面介绍这个demo

2.2、首先,demo代码中,会将数据塞到ExportExcelBean这个类中

List li = new ArrayList();

TestBean testBean = new TestBean();

testBean.setIntTest(8888);

testBean.setStrTest("88888.888");

testBean.setTimeTest(new Timestamp(System.currentTimeMillis()));

for (int i = 0; i < 1000; i++) {

li.add(testBean);

}

LinkedHashMap keyMap = new LinkedHashMap();

keyMap.put("timeTest", "time类型");

keyMap.put("intTest", "int类型");

keyMap.put("strTest", "string类型");

List sheetContentList = new ArrayList();

ExportExcelBean bean1 = new ExportExcelBean();

bean1.setContentList(li);

bean1.setKeyMap(keyMap);

bean1.setSheetName("测试1");

ExportExcelBean bean2 = new ExportExcelBean();

bean2.setContentList(li);

bean2.setKeyMap(keyMap);

bean2.setSheetName("测试2");

sheetContentList.add(bean1);

sheetContentList.add(bean2);

如上所示演示了将一些测试数据填入到ExportExcelBean中。ExportExcelBean有三个属性

sheetname:表名。在一个excel文件中,允许存在多个表。每个表的名字,一般会在excel左下角显示,如下所示

687474703a2f2f696d6167652e67616d652e79792e636f6d2f6f2f636c6f75646170702f32353538363735392f313730783137302f3230313530362d62626332613630665f303934655f343938625f383765375f3265616437396361393533362e706e67

contentList:要填充的内容。表的每一行,是一个对象,多个对象一起,就组成了这个contentList。对象的类,可以依据你自己的实际情况,用自己写的类。本文例子中,是将数据填充到TestBean 这个类中

keyMap:表列名及属性映射关系。请注意,这是一个LinkedHashMap,也就是说,是有顺序先后性的。之后你要调整每一列的顺序,也只要调整这里的顺序即可

如例子中这三行代码,表示表的第一列,列的标题为time类型,填充的值为TestBean 类中timeTest这个属性。第二列标题则为“int类型”,填充TestBean 中intTest属性

keyMap.put("timeTest", "time类型");

keyMap.put("intTest", "int类型");

keyMap.put("strTest", "string类型");

###3、基于注解

基于注解的方式,指的是excel的列,列名,顺序等由源数据bean中的注解来指定。测试类TestExtend演示了这个方式

@ExcelSheet(name = "这是表的名字", order = "strTest,intTest")

public class TestBean {

@SheetCol("字符串")

private String strTest;

@SheetCol("数字")

private int intTest;

@SheetCol("时间")

private Timestamp timeTest;

//这里省略get、set方法

这里假设我们要将List的数据输出为excel,可以像上面这样做注解。

注解ExcelSheet,name属性指定了表的名字,order属性指定了列的顺序,其中的值是bean中的属性名,多个属性用逗号隔开

注解SheetCol,带有这个注解的属性,才会被输出到excel中,且表头的列名,为这里指定的名字

之后调用exportByAnnotation方法,就可以得到excel文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值