文章目录

  • 前言
  • 一、poi是什么?
  • 二、使用步骤
    • 1.引入依赖
    • 2.导出excel
    • 3.导入excel
  • 总结

前言

excel的上传下载是常见的需求,这里记录一下使用poi实现Excel的上传和下载


一、poi是什么?

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

二、使用步骤

1.引入依赖

代码如下(示例):

<!--poi依赖-->
<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.15</version>
</dependency>

2.导出excel

代码如下(示例):

@RequestMapping("/xxx")
public void exportAllxxx(HttpServletResponse response) throws Exception {//获取所有的xxx列表数据List<xxx> xxxList = xxxService.queryAllxxx();//创建一个工作薄HSSFWorkbook wb = new HSSFWorkbook();//创建sheetHSSFSheet sheet = wb.createSheet("xxx");//创建行和列(cell单元格)//创建行HSSFRow row = sheet.createRow(0);//创建单元格(列)//第1行第1列HSSFCell cell = row.createCell(0);//设置单元格的内容cell.setCellValue("xxx");//第1行第2列cell = row.createCell(1);//设置单元格内容cell.setCellValue("xxx");//第1行第3列cell = row.createCell(2);//设置单元格内容cell.setCellValue("xxx");//第1行第4列cell = row.createCell(3);//设置单元格内容cell.setCellValue("xxx");//判断是否有值if (null != xxxList) {//循环遍历查询出来的数据//将数据存放到表格中for (int i = 0; i < xxxList.size(); i++) {//获取xxx对象Xxx xxx = xxxList.get(i);//创建行row = sheet.createRow(i+1);//创建单元格//第(i+1)行第1列cell = row.createCell(0);//设置单元格内容cell.setCellValue(xxx.getxxx());//第(i+1)行第2列cell = row.createCell(1);//设置单元格内容cell.setCellValue(xxx.getxxx());//第(i+1)行第3列cell = row.createCell(2);//设置单元格内容cell.setCellValue(xxx.getxxx());//第(i+1)行第4列cell = row.createCell(3);//设置单元格内容cell.setCellValue(xxx.getxxx());}}//设置中文文件名称String fileName = URLEncoder.encode("xxx文件名称","UTF-8");//浏览器默认服务器传过去的是html,不是excel文件//设置响应类型:传输内容是流,并支持中文response.setContentType("application/octet-stream;charset=UTF-8");//设置响应头信息header,下载时以文件附件下载response.setHeader("Content-Disposition","attachment;filename="+fileName+".xls");//输出流对象OutputStream os = response.getOutputStream();wb.write(os);//强制刷新os.flush();os.close();wb.close();
}

3.导入excel

@RequestMapping("/xxx")
public @ResponseBody Object importActivity(HttpServletRequest request, MultipartFile xxxFile) {int count = 0;try {//通过文件获取输入流InputStream is = xxxFile.getInputStream();//创建工作簿HSSFWorkbook wb = new HSSFWorkbook(is);//获取sheetHSSFSheet sheet = wb.getSheetAt(0);//创建行和列(单元格)HSSFRow row = null;HSSFCell cell = null;//创建一个List集合存放数据List<xxx> xxxList = new xxxList<xxx>();Xxx xxx = null;//循环获取行for (int i = 1; i <= sheet.getLastRowNum(); i++) {//获取行对象row = sheet.getRow(i);xxx = new xxx();xxx.setId(UUIDUtils.getUUID());//循环列for (int j = 0; j < row.getLastCellNum(); j++) {//获取单元格对象cell = row.getCell(j);//获取cell单元格的内容String stringCellValue = cell.getStringCellValue();switch (j) {case 0:xxx.setxxx(stringCellValue);break;case 1:xxx.setxxx(stringCellValue);break;case 2:xxx.setxxx(stringCellValue);break;}}//一行数据获取完毕xxxList.add(xxx);}//所有的数据读取完毕//调用业务层的批量新增功能count = xxxService.savexxxListFromFile(xxxList);if (count < 1) {return ReturnObject.fail("上传失败");}} catch (Exception e) {e.printStackTrace();return ReturnObject.fail("上传失败");}return ReturnObject.success(count);
}

总结

这次仅仅是poi对excel的处理,但是poi不仅仅只能处理excel,word和pdf暂时还未使用过。

使用poi实现excel的上传下载相关推荐

  1. java实现excel文件上传_java相关:SpringMVC下实现Excel文件上传下载

    java相关:SpringMVC下实现Excel文件上传下载 发布于 2020-6-21| 复制链接 摘记: 在实际应用中,经常会遇到上传Excel或者下载Excel的情况,比如导入数据.下载统计数据 ...

  2. php上传下载excel,PHPExcel 上传下载的示例代码

    1:首先用composer require phpoffice/phpexcel 2: 引入相关的类: use PHPExcel; use PHPExcel_Cell; use PHPExcel_Wr ...

  3. SpringBoot——快速整合EasyExcel实现Excel的上传下载

    文章目录: 1.EasyExcel 2.Excel的上传(读Excel) 3.Excel的下载(写Excel) 4.结语 1.EasyExcel Hello,大家好啊,好久不见了,自工作之后真的很难腾 ...

  4. hibernate+servlet+mysql 实现easypoi_在Maven项目中使用easypoi完成Excel文件上传下载(示例代码)...

    导包: 1 2 3 cn.afterturn 4 easypoi-base 5 3.2.0 6 7 8 cn.afterturn 9 easypoi-web 10 3.2.0 11 12 13 cn. ...

  5. java实现Excel文件上传下载(模板)-hutool

    引入依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</arti ...

  6. EXCEL与Mysql数据相互同步---EXCEL数据上传到Mysql,从Mysql下载数据到EXCEL__1

    EXCEL数据上传到Mysql,从Mysql下载数据到EXCEL 总结一下最近项目中用到的excel和mysql数据同步流程(Springboot里面使用的jdbcTemplate,如果要集成myba ...

  7. 文件上传下载和Excel读写全家桶

    一.javaweb实现 upload package com.atqh.Servlet.FileServlet;import com.atqh.utils.ExcelUtil; import org. ...

  8. struts上传word和excel文件到oracle,Struts文件上传,下载,重传,预览

    [Struts2]☆★之文件上传,下载,重传,预览 今日群里一兄弟问我能否给一份struts文件上传下载的例子,因为自己项目比较紧所以想在网上找 些源码给他,但是纵观全网,写的都不是太全,这让新手使用 ...

  9. java jxl上传excel_JAVA JXL -----excel文件上传和解析

    Java 操作EXCEL 有比较常见的方法 一是使用开源JXL组件,另外一种是POI,POI相对应用更广泛,能够操作微软所有windows文档,但数据量大的情况下比较消耗内存,所以相对效率比较低. 这 ...

最新文章

  1. 狎昵关系和依恋情结辨诠
  2. GDCM:gdcm::ModuleEntry的测试程序
  3. leetcode414. 第三大的数
  4. ajax提交加载loading图标遮罩层不显示
  5. SQL语句优化的30种方法,总结的太棒了
  6. appstore app 下载地址
  7. RSS工具-Feeddemon(Feedaemon,Feeddaemon)破解2.0出炉了
  8. css 好看滚动条样式大全,CSS 个性化滚动条样式
  9. 美团网手机客户端产品分析
  10. html如何设置radio单选按钮默认选中效果
  11. 极客时间和极客学院_极客和书呆子之间的区别
  12. 药到痰出——喉咙不再有痰
  13. html5自动计时,HTML5 时钟/计时器应用程序
  14. 铸造国之重器 华为云正为“数字中国”战略提供哪些有力支撑?
  15. Briefings in Bioinformatics2021 | 从头药物设计的深度生成模型的综合性评估
  16. matlab产生雷达信号,用matlab仿真雷达信号
  17. c语言课程设计北京电子工业出版社,c语言图书管理系统课程设计报告
  18. 大数据时代的历史机遇——产业变革与数据科学
  19. 三维计算机辅助设计教程,三维计算机辅助设计教程-Pro ENGINEER.pdf
  20. 各公司软件技术人员的工资

热门文章

  1. NFC cdma 封装设计
  2. 程序员换工作都应该知道的福利
  3. locust获取查询关键字-查询性能脚本
  4. 神码路由器交换机telnet配置
  5. Golang + Laya引擎实现的简易版“球球大作战”小游戏
  6. 思科CCIE证书真伪、有效性查询方式
  7. 计算机桌面屏幕设置,双显示器设置:如何设置一台电脑两个显示器
  8. 学习LUA,使用IUP进行GUI程序设计
  9. 面试被问到“你有什么缺点?”这么回答的都拿到Offer了!
  10. VC做了个仿千千静听的播放器