定义表格注解:
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.FIELD,ElementType.METHOD})
public @interface ExcelField {
//排序
int sort();
//表头
String header();
}
实体类:
public class User {
@ExcelField(header="用户ID",sort=1)
private int id;
@ExcelField(header="用户姓名",sort=2)
private String name;
@ExcelField(header="用户性别",sort=4)
private String sex;
@ExcelField(header="用户年龄",sort=3)
private int age;
public User() {
super();
}
public User(int id, String name, String sex, int age) {
super();
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
如何通过上述的条件实现将数据导出到Excel表格?在此就需要先介绍导出Excel表格的相关java工具。
开发中经常会涉及到excel的处理,如导出Excel,导入Excel到数据库中,操作Excel目前有两个框架,一个是apache 的poi, 另一个是 Java Excel。在此只介绍apache的poi。
Apache POI是一种流行的API,它允许程序员使用Java程序创建,修改和显示MS Office文件。这由Apache软件基金会开发使用Java分布式设计或修改Microsoft Office文件的开源库。它包含类和方法对用户输入数据或文件到MS Office文档进行解码。
Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。jxl 由于其小巧 易用的特点, 逐渐已经取代了 POI-excel的地位, 成为了越来越多的java开发人员生成excel文件的首选。
这里提供Java Excel的jxl.jar和Apache poi的下载:
http://download.csdn.net/download/yutao_struggle/10186699
poi引入的jar包:
poi-3.17.jar
poi-ooxml-3.17.jar
poi-ooxml-schemas-3.17.jar
commons-collectons4-4.1.jar
注意:旧版本的POI支持二进制文件格式,如DOC,XLS,PPT等,从版本3.5起,POI支持微软Office的OOXML文件格式,如DOCX,XLSX,PPTX等。
Excel中的工作簿、工作表、行、单元格中的关系:
org.apache.poi.ss.usermodel.Workbook是创建和维护Excel工作簿的接口,他有三个实现:
与工作簿相似,对应的Sheet、Row、Cell等都有多个实现。
SXSSFWorkbook:工作簿,代表一个Excel 的整个文档
SXSSFSheet:工作表
SXSSFRow:行
SXSSFCell:单元格
SXSSFCellStyle:单元格样式
SXSSFFont:字体
SXSSFName:名称
SXSSFDataFormat :日期格式化
SXSSFHeader : Sheet的头部
SXSSFFooter :Sheet的尾部
SXSSFDateUtil :日期工具
SXSSFPrintSetup :打印设置
SXSSFErrorConstants:错误信息表
public class ExcelExport {
private SXSSFWorkbook wb; //工作簿
private Sheet sheet; //工作表
private Map styles; //样式
private int rownum; //行数
private List