300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > easypoi导出excel表的静态表头和动态表头

easypoi导出excel表的静态表头和动态表头

时间:2021-09-04 04:34:24

相关推荐

easypoi导出excel表的静态表头和动态表头

文章目录

依赖1.实体类2.静态表头2.1测试方法2.2测试:3动态表头3.1建立声明动态表头类3.2测试方法3.3测试

依赖

<dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.4.0</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-annotation</artifactId><version>4.4.0</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-web</artifactId><version>4.4.0</version></dependency>

1.实体类

注意序号和姓名特意放反,但是@Excel的orderNum参数标定。

生成excel表格时,序号为第一个姓名为第二个。

//设置user类的静态excel输出@Data@Builder@ExcelTarget("users")public class Userl implements Serializable {@Excel(name = "姓名", orderNum = "2", width = 30)private String name;@Excel(name = "序号", orderNum = "1", width = 10)private Integer id;@Excel(name = "生日", orderNum = "3", width = 20.0,exportFormat = "yyyy年MM月dd日", importFormat = "yyyy年MM月dd日")private Date birthday;@Excel(name = "年龄", orderNum = "4", width = 10)private Integer age;@Excel(name = "性别", orderNum = "5", width = 10)private String gender;//自己准备的用户假数据public List<User> setUserExcelData() {List<User> userExcels = new ArrayList<>();for (int i = 1; i <= 10; i++) {User user = User.builder().id(i).name("admin" + i).age(i * 10).gender(i % 2 == 0 ? "男" : "女").birthday(new Date()).build();userExcels.add(user);}return userExcels;}}

2.静态表头

在实体类上的@Excel注解就是静态表头

2.1测试方法

@Testpublic void testWriteExcel() throws IOException {User user = new User();// 准备假数据List<User> userExcels = user.setUsersData();ExportParams params = new ExportParams();//填写excel表的信息params.setTitle("信息");params.setSheetName("用户信息");//将自己添加的信息,实体类结构,类的数据组成对象workbookWorkbook workbook = ExcelExportUtil.exportExcel(params, User.class, userExcels);String fileAddress = "E:\\codes\\hhf\\blog-demo\\excel-test" +"\\src\\main\\java\\com\\hhf\\exceltest2\\test4.xlsx";FileOutputStream outputStream = new FileOutputStream(fileAddress);//将workbook写入到指定的文件workbook.write(outputStream);workbook.close();}

2.2测试:

3动态表头

3.1建立声明动态表头类

//user类的动态表头输出@Datapublic class UserDynamicExcel implements Serializable {private static final long serialVersionUID = 8991244829305414889L;//表头名字private String filedShowName;//表头key值和查询出来的数据的实体相对应,即实体类的字段private String filedCode;//表头顺序private Integer orderNum;//字段数据类型private Integer dataType;//第一种动态表头,excel表只有姓名和name两列public List<UserDynamicExcel> getUserExcelList_1(){ArrayList<UserDynamicExcel> userExcelList = new ArrayList<UserDynamicExcel>();//excel表添加第一个姓名属性UserDynamicExcel userDynamicExcel_1 = new UserDynamicExcel();userDynamicExcel_1.setFiledShowName("姓名");userDynamicExcel_1.setFiledCode("name");userDynamicExcel_1.setOrderNum(1);userDynamicExcel_1.setDataType(0);//excel表添加第三个生日属性UserDynamicExcel userDynamicExcel_3 = new UserDynamicExcel();userDynamicExcel_3.setFiledShowName("生日");userDynamicExcel_3.setFiledCode("birthday");userDynamicExcel_3.setOrderNum(2);userDynamicExcel_3.setDataType(0);userExcelList.add(userDynamicExcel_1);userExcelList.add(userDynamicExcel_3);return userExcelList;}}

3.2测试方法

@Testpublic void testWriteExcel_2( ) throws IOException {// 准备假数据User user = new User();List<User> userExcels = user.setUsersData();//建立动态表头类的对象UserDynamicExcel userDynamicExcel = new UserDynamicExcel();//获得第一种动态表头List<UserDynamicExcel> userExcelList = userDynamicExcel.getUserExcelList_1();//ExcelExportEntity是这样一个类,用于代替exportExcel()方法中第二个参数实体类结构。建立一个长度等于第一种动态excel表头的ExcelExportEntity集合List<ExcelExportEntity> beanList = new ArrayList<ExcelExportEntity>(userExcelList.size());for (UserDynamicExcel tablePo : userExcelList){ExcelExportEntity entity = new ExcelExportEntity();entity.setName(tablePo.getFiledShowName());entity.setKey(tablePo.getFiledCode());entity.setOrderNum(tablePo.getOrderNum());beanList.add(entity);}try {// 建立一个excel表信息的对象ExportParams params = new ExportParams();//excel表的信息params.setTitle("信息");params.setSheetName("用户信息");//将并添加信息,实体类结构,类的数据做成excel表格对象workbookWorkbook workbook = ExcelExportUtil.exportExcel(params,beanList, userExcels);//将要存储的位置做成对象String fileAddress = "E:\\codes\\hhf\\blog-demo\\excel-test" +"\\src\\main\\java\\com\\hhf\\exceltest2\\test2.xlsx";FileOutputStream outputStream = new FileOutputStream(fileAddress);//将workbook写入到指定的地址workbook.write(outputStream);workbook.close();} catch (ExportException e) {e.printStackTrace();}

3.3测试

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。