自述
本篇个人巩固-如有不足,大佬可以指点指点
注解(导入导出)
@Excel
RuoYi使用@Excel注解给属性进行绑定,实现数据的导入和导出功能
@Excel参数
这里我就直接贴官网的参数
参数 类型 默认值 描述 sort int Integer.MAX_VALUE 导出时在excel中排序,值越小越靠前 name String 空 导出到Excel中的名字 dateFormat String 空 日期格式, 如: yyyy-MM-dd dictType String 空 如果是字典类型,请设置字典的type值 (如: sys_user_sex) readConverterExp String 空 读取内容转表达式 (如: 0=男,1=女,2=未知) separator String , 分隔符,读取字符串组内容 scale int -1 BigDecimal 精度 默认:-1(默认不开启BigDecimal格式化) roundingMode int BigDecimal.ROUND_HALF_EVEN BigDecimal 舍入规则 默认:BigDecimal.ROUND_HALF_EVEN celltype Enum Type.STRING 导出类型(0数字 1字符串 2图片) height String 14 导出时在excel中每个列的高度 单位为字符 width String 16 导出时在excel中每个列的宽 单位为字符 suffix String 空 文字后缀,如% 90 变成90% defaultValue String 空 当值为空时,字段的默认值 prompt String 空 提示信息 combo String Null 设置只能选择不能输入的列内容 comboReadDict boolean false 是否从字典读数据到combo,默认不读取,如读取需要设置dictType注解. headerBackgroundColor Enum IndexedColors.GREY_50_PERCENT 导出列头背景色IndexedColors.XXXX headerColor Enum IndexedColors.WHITE 导出列头字体颜色IndexedColors.XXXX backgroundColor Enum IndexedColors.WHITE 导出单元格背景色IndexedColors.XXXX color Enum IndexedColors.BLACK 导出单元格字体颜色IndexedColors.XXXX targetAttr String 空 另一个类中的属性名称,支持多级获取,以小数点隔开 isStatistics boolean false 是否自动统计数据,在最后追加一行统计数据总和 type Enum Type.ALL 字段类型(0:导出导入;1:仅导出;2:仅导入) align Enum HorizontalAlignment.CENTER 导出对齐方式HorizontalAlignment.XXXX handler Class ExcelHandlerAdapter.class 自定义数据处理器 args String[] {} 自定义数据处理器参数
具体怎么用呢???
我写了个例子可以进行参考,每个参数之间使用","进行区分
导出
------------------------------------------------------------------------------------------------
怎么用??
其实很简单,RuoYi有现成的ExcelUtil提供我们使用
注意:ExcelUtil传入的泛型与list相同
------------------------------------------------------------------------------------------------
实现流程??
完成导出需要两次请求,分别是生成文件和下载文件
(1)导出接口
【从外往里看】
1.导出接口
调用了ExcelUtil的exportExcel方法
进入exportExcel(需要导出的数据集合,工资表名称)
2.exportExcel(需要导出的数据集合,工资表名称)方法
需要两个参数,分别是需要导出的数据集合和工资表名称。
再往里走exportExcel方法
进入exportExcel(需要导出的数据集合,工资表名称,标题)
3.exportExcel(需要导出的数据集合,工资表名称,标题)
调用了两个方法
1.init
2.exportExcel
我们一个个看
3.1 init方法
3.1.1createExcelField()
3.1.2createWorkbook()
3.2 exportExcel方法
最后根据return exportExcel() 我们知道了最后返回的数据是一个文件名
总结
关于导出的总结我感觉有个博主写的不错,我就直接复制下来看一下导出流程
自定义注解,描述Bean字段在Execl的表现形式。(比如,字段的值否需要格式化,字段对应到表格中的列名称等等)
使用List<object[]> 存入类的Filed对象和注解对象。(比如导出的字段有10个,则该集合大小为10)
导出执行的大致逻辑:
根据注解信息完成List<object[]>集合的赋值。
根据导出的数据量,计算需要导出的sheet页。针对每一个sheet页进行处理
创建表头:遍历List<object[]>集合,通过object[1]得到字段的注解信息,创建sheet页表头。
填充数据: 根据sheet页数,计算对应的数据范围,循环创建行对象,根据循环下标,在数据集合中获取改行对应的数据对象。行中创建单元格对象,接着遍历List<object[]>集合,通过object[0]获取数据对象中属性值,通过object[1]>获取对该值的处理策略。处理完毕后,将值填充到单元格中。
【这段是我直接cv上来的,所以我就直接把链接也贴一下吧原文链接】https://blog.csdn.net/weixin_41842550/article/details/120001735
(2)通用下载接口
这里就不做过多的介绍下载了