JDK1.7+,将lib下的jar包Add to build path即可。项目里用json-lib来处理json数据,它需要关联一些jar包,建议用Gson
若需换成Gson或其他Json jar,请重写com.xuanyimao.poiexcelexporttool.common.ExcelUtil中的jsonToListData和jsonToCellStyles方法(Gson的处理程序已写好,打开注释即可)
POIMaven引入参考
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.7</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.7</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.7</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.11</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>
public static String json1="[" +
" [" +
" {field:'name', title: '姓名', width:10, rowspan: 2, comment:'这是批注'}," +
" {field:'age', title: '年龄', width:10, rowspan: 2}," +
" {field:'age', title: '性别', width:10, rowspan: 2}," +
" {title: '成绩', width:10, rowspan: 1,colspan:3}" +
" ]," +
" [" +
" {field:'yw', title: '语文', width:10}," +
" {field:'sx', title: '数学', width:10}," +
" {field:'yy', title: '英语', width:10}" +
" ]" +
"]";
public static void main(String[] args) {
//简单的导出演示
normalExport();
}
/**
* 简单的导出演示
* @author:liuming
*/
public static void normalExport() {
List<Map<String,Object>> datas=initData1();
ExcelExportManager em=ExcelExportManager.Builder();
try {
String fileName=em.createExcel(excelSaveFolder, json1, datas);
System.out.println("生成的excel文件:"+fileName);
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 初始化数据
* @author:liuming
* @return
*/
public static List<Map<String,Object>> initData1(){
List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
Map<String,Object> map=new HashMap<String, Object>();
map.put("name", "狗王");
map.put("age", 100);
map.put("sex", "雄性");
map.put("sx", 10);
map.put("yy", 22.5);
map.put("yw", 998);
list.add(map);
map.put("name", "大狗子");
map.put("age", 100);
map.put("sex", "雄性");
map.put("sx", 10);
map.put("yy", 22.5);
map.put("yw", 94);
list.add(map);
map=new HashMap<String, Object>();
map.put("name", "二狗子");
map.put("age", 100);
map.put("sex", "雄性");
map.put("sx", 10);
map.put("yy", 22.5);
map.put("yw", 939);
list.add(map);
map=new HashMap<String, Object>();
map.put("name", "小狗子");
map.put("age", 100);
map.put("sex", "雌性");
map.put("sx", 10);
map.put("yy", 22.5);
map.put("yw", 92);
list.add(map);
map=new HashMap<String, Object>();
map.put("name", "狗雄");
map.put("age", 100);
map.put("sex", "雄性");
map.put("sx", 99);
map.put("yy", 22.5);
map.put("yw", 91);
list.add(map);
return list;
}
以上代码可生成一个二级表头Excel,建议先在JSON编写工具里写好表头json,再粘贴到Java代码中
表格配置数据为一个二维数组对象,数组的每个维度代表一行,即array[0][0]为第一行,array[0][1]为第二行
二维数组内是一个对象,包含表头和单元格的配置属性
field:字段名。对应数据集合(List<Map<String,Object>>)中Map的Key。多级表头中,一列只需设置一次此值。
title:列名。Excel表头的列名
width:单元格宽度。一般一个汉字的宽度为2
colspan:单元格跨多少列,默认为1。横向合并指定个数的单元格
rowspan:单元格跨多少行,默认为1。纵向合并指定个数单元格。
titleStyle:表头样式。可通过接口设置或通过模板文件设置
cellStyle:单元格样式。可通过接口设置或通过模板文件设置
comment:批注。有时候设置了不显示,原因不明。
模板文件可用于按照模板生成Excel,也可以只用于获取单元格样式。
如果导出数据的单元格样式来自于模板文件,则需要配置模板对象的templetCellStyles属性,以告诉程序如何处理指定位置的单元格样式
个人网站:http://xuanyimao.com
CSDN博客:https://blog.csdn.net/xymmwap
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。