场景A(无模板场景):, 根据表格数据信息,生成excel(常用于单一表格)
场景B(带模板场景): 根据表格数据信息和现有模板文件,生成excel(常用于有复杂样式的表格)
startLine:数据的开始行号,默认为0(第0行通常放表格的表头),但在场景B中通常起始行号不为0,要根据待赋值数据的起始行号来定义此值。
e.g. excel模板中现有内容结束行号为6,则数据开始行号为7(下标为6),此时传入的startLine参数应为6。
dateFormate:数据中日期的格式,默认为"yyyy-MM-dd"。
suffix:生成文件后缀,可选参数为xlsx(默认,2007以后版本的后缀名)和xls(2003以前版本的后缀名)。
columnWidth:列宽数组:默认单位为px,数组大小需跟列表的列数相同,否则设置失败,按等分处理。
sheetName :表单名称(适用于无模板导出,带模板场景可为空),默认名称“sheet1”。
sheetIndex :表单索引序号(适用于带模板导出,无模板场景可为空),默认sheetIndex = 0。
支持方法:
(1)public static Workbook export(ExcelTitle[] arrFields, List
用途:无模板的导出常用方法。
参数:arrFields,(必填)表格标题model列表(key:列的属性名,对应第二个参数中model的成员变量或者Map的key值,value:列的描述名)
lstModel,(必填)表格数据列表,可以是model或者Map
config,(非必填)excel的配置model,具体属性见ExcelConfig的定义。
(2)public static Workbook export(Workbook workbook, ExcelTitle[] arrFields, List
用途:创建带有多个sheet页的excel时使用的方法,通常结合方法(1)一起使用。
参数:workbook,(必填)excel工作簿对象
lstModel,(必填)表格数据列表,可以是model或者Map(同上)
config,(非必填)excel的配置model,具体属性见ExcelConfig的定义。(同上)
支持方法:
(1)public static Workbook exportByTemplate(InputStream in, String[] fields, List
用途:有模板的导出常用方法。
参数:in,模板文件输入流
fields,(必填)表格数据域,如{“name”,"age","phoneNum"}
lstModel,(必填)表格数据列表,可以是model或者Map
config,(必填)excel的配置model,具体属性见ExcelConfig的定义。
(2)public static Workbook export(Workbook workbook, String[] fields, List
用途:创建带有多个sheet页的excel时使用的方法,通常结合方法(1)一起使用。
参数:workbook,(必填)excel工作簿对象
fields,(必填)表格数据域,如{“name”,"age","phoneNum"}
lstModel,(必填)表格数据列表,可以是model或者Map
config,(必填)excel的配置model,具体属性见ExcelConfig的定义。
(3)public static Workbook exportByTemplateDynamicTitle(InputStream in, ExcelTitle[] arrFields, List
用途:有模板+动态表头的导出常用方法。
参数:in,模板文件输入流
arrFields,(必填)表格标题model列表(key:列的属性名,对应第二个参数中model的成员变量或者Map的key值,value:列的描述名)
lstModel,(必填)表格数据列表,可以是model或者Map
config,(必填)excel的配置model,具体属性见ExcelConfig的定义。
(4)public static Workbook exportByTemplateDynamicTitle(Workbook workbook, , ExcelTitle[] arrFields, List
用途:创建带有多个sheet页的excel时使用的方法,通常结合方法(3)一起使用。
参数:workbook,(必填)excel工作簿对象
arrFields,(必填)表格标题model列表(key:列的属性名,对应第二个参数中model的成员变量或者Map的key值,value:列的描述名)
lstModel,(必填)表格数据列表,可以是model或者Map
config,(必填)excel的配置model,具体属性见ExcelConfig的定义。
目前只定义了两种常用样式: 列头样式(headerCellStyle)和单元格样式(cellStyle),导出实现类中(ExcelExport和ExcelExportTemplate)使用,应用程序通常不会用到。
(1)public static Workbook getWorkBook(String suffix);
public static Workbook getWorkBookTemplate(String suffix, InputStream in);
用途:根据配置中的suffix的值来获取工作簿对象
参数:suffix,(必填)待生成文件的后缀,
in,(必填)模板文件的输入流
(2)public static Map, ?> objectToMap(Object obj);
用途:将对象转为Map
参数:obj,(必填)待转换对象
(3)public static String cellvalueFormat(Object obj, ExcelConfig config);
用途:表格数据格式化
参数:obj,(必填)待格式化数据
config,(非必填)配置对象
1.数据列表的最大数量,目前支持的最大cell数(最大cell数=记录数*每条记录的cell数)限制为 size<500000;
2.无模板场景的config可以为空,组件会使用默认参数;
有模板场景的config为必填项,此处目的是为了保证使用者不会漏配正文的起始行数(startLine)的参数,否则组件默认从第0行开始,即便生成了excel,也会覆盖已有内容;
四. 测试类及测试文件
源码+测试类+测试文件>>>