Java怎么利用POI实现导入导出Excel表格
作者:SunnyCoffee
时间:2023-04-28
来源:互联网
浏览:0
一、Java利用POI实现导入导出Excel表格demo1.引入依赖org.apache.poipoi-ooxml4.1.22.导入demo2.1controller层/***Excel导入*/@PostMapping("/import")publicResultuserImport2(@RequestParam("file")MultipartFilefile)throwsException{Resultresult=userService.userImportExcel(file);returnres
一、Java利用POI实现导入导出Excel表格demo
1.引入依赖
org.apache.poi poi-ooxml 4.1.2
2.导入demo
2.1 controller层
/**
* Excel导入
*/
@PostMapping("/import")
public Result userImport2(@RequestParam("file") MultipartFile file) throws Exception{
Result result=userService.userImportExcel(file);
return result;
}2.2 service实现类层
public Result userImportExcel(MultipartFile file){
try {
InputStream inputStream = file.getInputStream();
XSSFWorkbook sheets = new XSSFWorkbook(inputStream);
//获取表单sheet 第一个
XSSFSheet sheetAt = sheets.getSheetAt(0);
//获取第一行
int firstRowNum = sheetAt.getFirstRowNum();
//最后一行
int lastRowNum = sheetAt.getLastRowNum();
//存入数据集合
List users=new ArrayList<>();
//遍历数据
for(int i=firstRowNum+1;i3.导出demo
3.1 controller层
/**
* 导出
* @param response
* @return
* @throws Exception
*/
@GetMapping("/export")
public Result userExport2(HttpServletResponse response) throws Exception{
Result result=userService.userExportExcel(response);
return result;
}3.2 service实现类
public Result userExportExcel(HttpServletResponse response) {
try {
//创建excel
XSSFWorkbook sheets = new XSSFWorkbook();
//创建行
XSSFSheet sheet = sheets.createSheet("用户信息");
//格式设置
XSSFCellStyle cellStyle = sheets.createCellStyle();
//横向居中
cellStyle.setAlignment(HorizontalAlignment.CENTER);
//创建单元格第一列
XSSFRow row = sheet.createRow(0);
//表头
this.titleExcel(row,cellStyle);
//查询全部的用户数据 mybatis-plus
List list = list();
//遍历设置值
for(int i=0;i二、Hutool工具类封装方法导出导入Excel
1.引入依赖
把poi封装到工具类方法里面
cn.hutool
hutool-all
5.7.20
org.apache.poi
poi-ooxml
4.1.2
2.导入demo
/**
* Excel导入
*/
@PostMapping("/import")
public Result userImport(@RequestParam("file") MultipartFile file) throws Exception{
System.out.println(file.toString());
//InputStream inputStream = multipartFile.getInputStream();
InputStream inputStream = file.getInputStream();
ExcelReader reader = ExcelUtil.getReader(inputStream);
//读取表的内容
List> list = reader.read(1);
List users = new ArrayList<>();
for(List
3.导出demo
/**
* Excel导出 方法一
*/
@GetMapping("/export")
public Result userExport(HttpServletResponse response) throws Exception{
//查询全部的用户数据
List list = userService.list();
//在内存里做操作,保存到浏览器
ExcelWriter writer = ExcelUtil.getWriter(true);
//自定义标题别名
writer.addHeaderAlias("uname","用户名");
writer.addHeaderAlias("upassword","密码");
writer.addHeaderAlias("usex","性别");
writer.addHeaderAlias("role","角色");
writer.addHeaderAlias("ulove","爱心值");
writer.addHeaderAlias("uphoto","电话号码");
writer.addHeaderAlias("uaddress","地址");
//一次性写出list内的对象的Excel,使用默认样式,强制输出标题
writer.write(list,true);
//设置浏览器响应格式
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
String filName= URLEncoder.encode("用户信息","UTF-8");
response.setHeader("Content-Disposition","attachment;filename="+filName+".xls");
ServletOutputStream outputStream=response.getOutputStream();
writer.flush(outputStream,true);
outputStream.close();
writer.close();
return Result.success();
}
作者最新文章
在线PDF文件合并教程:多文件快速合成为一个完整文档
2026-09-03 12:06
吉利银河TT全球征名脱颖而出 最高725km续航引领C级纯电轿车新潮流
2026-08-25 10:37
ios16.2天气小组件无数据怎么办 ios16.2天气小组件无数据解决方法
2026-08-24 17:11
想开本地生活服务APP,整体落地要花多少钱?
2026-08-24 12:16
苹果发布macOS Sonoma和Sequoia新版候选更新
2026-08-24 12:05
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多
Windows 10
Windows
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式
Windows/macOS/Linux
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















