一、导出用户列表数据:
1、controller导出方法:
/** * 导出用户数据 */ public void export(){ String sql="select user_code as '0',user_name as '1',sex as '2',tel as '3' from sys_user"; String[] title={"用户名","姓名","性别","电话"}; exportExcel(title, sql); renderNull(); }
重点:sql里面的字段必须是别名0,1,2,3....,因为这个别名是对应title数组的下标,字段别名要和title的导出列一一对应
2、然后在浏览器直接调用导出方法接口即可
二、导入数据
1、业务controller方法,导入sql字段,主键是默认第一个,并且自动赋值uuid,其他字段值从导入的模板取,按照列一一对应取值,如下sql为例:
insert into sys_user (id,user_code,user_name,sex,tel) values (?,?,?,?,?)
/** * 导入数据 */ public void importExcel(){ UploadFile uf=getFile(); String sql="insert into sys_user (id,user_code,user_name,sex,tel) values (?,?,?,?,?)"; importExcel(uf, sql); renderNull(); }
2、sql对应的导入模板如下,除了id列不需要,其他列和字段顺序对应即可。
用户编号(user_code) | 用户名称(user_name) | 性别(sex) | 电话(tel) |
test | 测试用户 | 1 | 10086 |
test2 | 测试用户2 | 0 | 10086 |
test3 | 测试用户3 | 1 | 10086 |
3、下载导入模板文件
导入功能,基本都需要提供下载模板文件,所以/portal/temp/{url}这个接口就派上用场了,接口详见com.qinhailin.portal.PortalController
/portal/temp/{url}方法使用一个 baseDownloadPath 参数为基础路径去寻找文件。baseDownloadPath 参数默认值指向目录:src/main/webapp/temp/download
你的模板文件只要放在这个目录下即可,可以创建多级目录,假如你的模板文件路径为:
src/main/webapp/temp/download/user/导入用户模板.xls
那么{url}=/user/导入用户模板.xls,所以完整的路由为:
/portal/temp/user/导入用户模板.xls