defaultExport(list, pojoClass, fileName, response, exportParams);
}
//导出
public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass,String fileName, HttpServletResponse response){
defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName));
}
public static void exportExcel(List<Map<String, Object>> list, String fileName, HttpServletResponse response){
defaultExport(list, fileName, response);
}
private static void defaultExport(List<?> list, Class<?> pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams) {
Workbook workbook = ExcelExportUtil.exportExcel(exportParams,pojoClass,list);
if (workbook != null);
downLoadExcel(fileName, response, workbook);
}
private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) {
try {
response.setCharacterEncoding(“UTF-8”);
response.setHeader(“content-Type”, “application/vnd.ms-excel”);
response.setHeader(“Content-Disposition”,
“attachment;filename=” + URLEncoder.encode(fileName, “UTF-8”));
workbook.write(response.getOutputStream());
} catch (IOException e) {
throw new RuntimeException(e.getMessage());
}
}
private static void defaultExport(List<Map<String, Object>> list, String fileName, HttpServletResponse response) {
Workbook workbook = ExcelExportUtil.exportExcel(list, ExcelType.HSSF);
if (workbook != null);
downLoadExcel(fileName, response, workbook);
}
//导入
public static List importExcel(String filePath,Integer titleRows,Integer headerRows, Class pojoClass){
if (StringUtils.isBlank(filePath)){
return null;
}
ImportParams params = new ImportParams();
params.setTitleRows(titleRows);
params.setHeadRows(headerRows);
List list = null;
try {
list = ExcelImportUtil.importExcel(new File(filePath), pojoClass, params);
}catch (NoSuchElementException e){
throw new RuntimeException(“模板不能为空”);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e.getMessage());
}
return list;
}
public static List importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class pojoClass){
if (file == null){
return null;
}
ImportParams params = new ImportParams();
params.setTitleRows(titleRows);
params.setHeadRows(headerRows);
List list = null;
try {
list = ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, params);
}catch (NoSuchElementException e){
throw new RuntimeException(“excel文件不能为空”);
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
return list;
}
}
OK,接下来玩导出导入,
既然是结和MYSQL数据库,那么我们简单看看,表,毕竟刚刚也创建了实体类:
好了,然后UserMapper简单贴一下:
@Mapper
public interface UserMapper {
//查询所有
List queryUserInfo();
//插入所有
void addUserInfo(List list);
}
相关的 userMapper.xml:
<?xml version="1.0" encoding="UTF-8" ?>select *
from user
insert into user(
user_name,
user_age
)
values
(
#{item.userName},
#{item.userAge}
)
然后是UserService:
public interface UserService {
//查询所有
List queryUserInfo();
//插入所有
void addUserInfo(List list);
}
对应的实现类:
@Service
public class UserServiceImpl implements UserService {
@Autowired
UserMapper userMapper;
@Override
public List queryUserInfo() {
return userMapper.queryUserInfo();
}
@Override
public void addUserInfo(List list) {
userMapper.addUserInfo(list);
}
}
好了,开始导出导入了!
我们直接看代码,创建一个TestController,
package com.example.tdemo.controller;
import com.example.tdemo.pojo.User;
import com.example.tdemo.service.impl.UserServiceImpl;
import com.example.tdemo.util.ExcelUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@RestController
public class TestController {
@Autowired
UserServiceImpl userService;
@RequestMapping(“exportExcel”)
public void export(HttpServletResponse response){
List userList = userService.queryUserInfo();
//导出操作
ExcelUtil.exportExcel(userList,“用户信息”,“sheet1”,User.class,“testDATA.xls”,response);
}
@RequestMapping(“importExcel”)
public String importExcel(){
String filePath = “C:\testInfo.xls”;
//解析excel,
List userList = ExcelUtil.importExcel(filePath,1,1,User.class);
//也可以使用MultipartFile,使用 FileUtil.importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class pojoClass)导入
System.out.println(“导入数据一共【”+userList.size()+“】行”);
userService.addUserInfo(userList);
List userList2 = userService.queryUserInfo();
return userList2.toString();
}
}
好像结束了,我们来简单调下接口,验证下吧:
导出前数据表数据是这样的:
调用导出接口(谷歌浏览器默认下载到对应路径,IE\360等浏览器可以选择导出下载地址):
OK,EXCEL表格已经导出,我们看看打开看看:
OK的,没有什么问题。
那我们继续调下导入吧(记得看下对应的接口,导入选择的路径我们是写死的,文件名也是,后期结合前端交互可以改为路径选择传入),
先看看需要导入数据的EXCEL表格内容,
好,开始调用导入接口(将EXCEL表格内容转化为List,再将List数据批量插入数据库):
OK,我们导入数据,插入数据库后打印出来当前表信息,其实已经可以确定,肯定是无误了,最后看看数据库:
好了,就到此结束吧,是不是很简单?
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最近我根据上述的技术体系图搜集了几十套腾讯、头条、阿里、美团等公司21年的面试题,把技术点整理成了视频(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
[外链图片转存中…(img-p4qGi2BV-1713401006697)]
最近我根据上述的技术体系图搜集了几十套腾讯、头条、阿里、美团等公司21年的面试题,把技术点整理成了视频(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分
[外链图片转存中…(img-i3kCFVub-1713401006697)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!