做网站公司西安,网易发布广州,360 街景地图,网站开发是什么环境填充一组数据
准备模板 封装数据
import java.util.ArrayList;
import java.util.List;/*** 使用实体类封装填充数据** 实体中成员变量名称需要和Excel表各种{}包裹的变量名匹配*/
Data
public class FillData {private String name;private int age;// 生成多组数据代码pub…
填充一组数据
准备模板 封装数据
import java.util.ArrayList;
import java.util.List;/*** 使用实体类封装填充数据** 实体中成员变量名称需要和Excel表各种{}包裹的变量名匹配*/
Data
public class FillData {private String name;private int age;// 生成多组数据代码public static ListFillData initFillData() {ArrayListFillData fillDatas new ArrayListFillData();for (int i 0; i 10; i) {FillData fillData new FillData();fillData.setName(学生0 i);fillData.setAge(10 i);fillDatas.add(fillData);}return fillDatas;}
} 类填充形式 Testpublic void test1(){// 加载模板String templateFilesrc/main/resources/excel/templte/fill_data_template1.xlsx;// 写入文件String targetFileName 单组数据填充.xlsx;// 准备对象数据填充FillData fillData new FillData();fillData.setName(学生1);fillData.setAge(10);// 生成工作簿对象ExcelWriterBuilder workBookWriter EasyExcel.write(targetFileName,FillData.class).withTemplate(templateFile);// 获取工作表并填充workBookWriter.sheet().doFill(fillData);}
Map形式填充 Testpublic void test1(){// 加载模板String templateFilesrc/main/resources/excel/templte/fill_data_template1.xlsx;// 写入文件String targetFileName 单组数据填充.xlsx;// 生成工作簿对象ExcelWriterBuilder workBookWriter EasyExcel.write(targetFileName,FillData.class).withTemplate(templateFile);// 使用Map数据填充HashMapString, String mapFillData new HashMap();mapFillData.put(name, 学生1);mapFillData.put(age, 11);// 获取第一个工作表填充并自动关闭流workBookWriter.sheet().doFill(mapFillData);}
结果 填充多组数据
准备模板
注意模板里面与上面相比是多了.的 封装数据
与上面一样省略。
填充
Testpublic void test02(){// 加载模板String templateFilesrc/main/resources/excel/templte/fill_data_template2.xlsx;// 写入文件String targetFileName 多组数据填充.xlsx;ListFillData fillDatas FillData.initFillData();System.out.println(fillDatas);// 生成工作簿对象ExcelWriterBuilder workBookWriter EasyExcel.write(targetFileName,FillData.class).withTemplate(templateFile);// 获取第一个工作表填充并自动关闭流workBookWriter.sheet().doFill(fillDatas);}
结果 组合填充
准备模板
即有多组数据填充又有单一数据填充 。 封装数据
同上。
填充 Testpublic void test03(){// 加载模板String templateFilesrc/main/resources/excel/templte/fill_data_template3.xlsx;// 目标文件String targetFileName 组合数据填充.xlsx;ListFillData fillDatas FillData.initFillData();// 生成工作簿对象ExcelWriter excelWriter EasyExcel.write(targetFileName,FillData.class).withTemplate(templateFile).build();// 生成工作表对象WriteSheet writeSheet EasyExcel.writerSheet().build();// 组合填充时因为多组填充的数据量不确定需要在多组填充完之后另起一行FillConfig fillConfig FillConfig.builder().forceNewRow(true).build();// 填充并换行excelWriter.fill(fillDatas, fillConfig, writeSheet);HashMapString, String otherData new HashMap();otherData.put(date, 2020-03-14);otherData.put(total, 100);excelWriter.fill(otherData, writeSheet);// 关闭excelWriter.finish();} 结果 水平填充
准备模板
水平填充和多组填充模板一样不一样的地方在于填充时需要通过FillConfig对象设置水平填充。 封装数据
同上
填充
Testpublic void test04(){// 加载模板String templateFilesrc/main/resources/excel/templte/fill_data_template4.xlsx;// 写入文件String targetFileName 水平数据填充.xlsx;ListFillData fillDatas FillData.initFillData();// 生成工作簿对象ExcelWriter excelWriter EasyExcel.write(targetFileName,FillData.class).withTemplate(templateFile).build();// 生成工作表对象WriteSheet writeSheet EasyExcel.writerSheet().build();// 组合填充时因为多组填充的数据量不确定需要在多组填充完之后另起一行FillConfig fillConfig FillConfig.builder().direction(WriteDirectionEnum.HORIZONTAL).build();// 填充excelWriter.fill(fillDatas, fillConfig, writeSheet);// 关闭excelWriter.finish();}
结果
资料
常用类 EasyExcel 入口类用于构建开始各种操作 ExcelReaderBuilder 构建出一个ReadWorkbook对象即一个工作簿对象对应的是一个Excel文件 ExcelWriterBuilder 构建出一个WriteWorkbook对象即一个工作簿对象对应的是一个Excel文件 ExcelReaderSheetBuilder 构建出一个ReadSheet对象即一个工作表的对象对应的Excel中的每个sheet一个工作簿可以有多个工作表 ExcelWriterSheetBuilder 构建出一WriteSheet对象即一个工作表的对象对应的Excel中的每个sheet一个工作簿可以有多个工作表 ReadListener 在每一行读取完毕后都会调用ReadListener来处理数据我们可以把调用service的代码可以写在其invoke方法内部 WriteHandler 在每一个操作包括创建单元格、创建表格等都会调用WriteHandler来处理数据对使用者透明不可见 所有配置都是继承的 Workbook的配置会被Sheet继承。所以在用EasyExcel设置参数的时候在EasyExcel…sheet()方法之前作用域是整个sheet之后针对单个sheet。 读取时的注解
ExcelProperty
属性名含义说明index对应Excel表中的列数默认-1建议指定时从0开始value对应Excel表中的列头converter成员变量转换器自定义转换器需要实Converter接口
ExcelIgnore
标注在成员变量上默认所有字段都会和excel去匹配加了这个注解会忽略该字段
DateTimeFormat
标注在成员变量上日期转换代码中用String类型的成员变量去接收excel中日期格式的数据会调用这个注解。里面的value参照java.text.SimpleDateFormat
NumberFormat
标注在成员变量上数字转换代码中用String类型的成员变量去接收excel数字格式的数据会调用这个注解。里面的value参照java.text.DecimalFormat
ExcelIgnoreUnannotated
标注在类上。不标注该注解时默认类中所有成员变量都会参与读写无论是否在成员变量上加了ExcelProperty 的注解。标注该注解后类中的成员变量如果没有标注ExcelProperty 注解将不会参与读写。
ExcelProperty
属性名含义说明index对应Excel表中的列数默认-1指定时建议从0开始value对应Excel表中的列头converter成员变量转换器自定义转换器需要实Converter接口