HTML代码
//工具栏

     var toolbar = [ {{id : 'button-import',text : '导入',iconCls : 'icon-redo'},{id : 'button-export',text : '导出',iconCls : 'icon-undo',handler : function () {window.location.href = "/batchExport";}}
}];

// 为导入按钮,添加一键上传效果

         $("#button-import").upload({// 默认name为file action : '../../area_batchImport',onSelect :function(){// 选中文件后,关闭自动提交 this.autoSubmit = false ;// 判定文件格式 ,以.xls 或者 .xlsx 结尾 var filename = this.filename();var regex = /^.*\.(xls|xlsx)$/ ;if(regex.test(filename)){// 满足this.submit();}else{$.messager.alert("警告","只能上传.xls或.xlsx结尾的文件!","warning");}},onComplete : function(response){alert("文件上传成功!");/*刷新当前上传的数据*/window.location.href = "/pages/base/area.html";}});

dao:

public interface AreaDao extends JpaRepository<Area,String>,JpaSpecificationExecutor<Area> {
}

service:

 /*** excle导入数据并保存到数据库* @param areas* @return*/public List<Area> saveBatch(List<Area> areas);/***  导出* @return*/public List<Area> findAll();

serviceImpl:

  @Autowiredprivate AreaDao areaDao;/*** excle导入数据并保存到数据库* @param areas* @return*/@Override@Transactionalpublic List<Area> saveBatch(List<Area> areas) {return areaDao.saveAll(areas);}/*** 查询所有的数据* @return*/@Overridepublic List<Area> findAll() {List<Area> areas = areaDao.findAll();return areas;}

controller:

 @Autowiredprivate AreaService areaService;/*** excle导入数据并保存到数据库** @param file* @return*/
@RequestMapping("/area_batchImport")
public String batchImport(MultipartFile file) throws Exception {List<Area> areas = new ArrayList<Area>();// 编写解析代码逻辑// 基于.xls 格式解析 HSSF// 1、 加载Excel文件对象HSSFWorkbook hssfWorkbook = new HSSFWorkbook(file.getInputStream());// 2、 读取一个sheetHSSFSheet sheet = hssfWorkbook.getSheetAt(0);// 3、 读取sheet中每一行for (Row row : sheet) {// 一行数据 对应 一个区域对象if (row.getRowNum() == 0) {// 第一行 跳过continue;}// 跳过空行if (row.getCell(0) == null || StringUtils.isBlank(row.getCell(0).getStringCellValue())) {continue;}Area area = new Area();area.setId(row.getCell(0).getStringCellValue());area.setProvince(row.getCell(1).getStringCellValue());area.setCity(row.getCell(2).getStringCellValue());area.setDistrict(row.getCell(3).getStringCellValue());area.setPostcode(row.getCell(4).getStringCellValue());String city = PinYin4jUtils.hanziToPinyin(area.getCity().replace("市", ""), "");area.setCitycode(city);String province = ToFirstChar(area.getProvince().replace("市", ""));String district = ToFirstChar(area.getDistrict().replace("市", ""));String city1 = ToFirstChar(area.getCity().replace("市", ""));StringBuilder stringBuilder = new StringBuilder(province);StringBuilder builder = stringBuilder.append(city1).append(district);area.setShortcode(builder.toString());areas.add(area);}// 调用业务层areaService.saveBatch(areas);return "ok";
}
===============================================
/*** 数据库导出到excel** @param file* @return*/
@RequestMapping("/batchExport")public String batchExport(HttpServletResponse response) throws Exception {//创建对象HSSFWorkbook hssfWorkbook = new HSSFWorkbook();//第一页的名称HSSFSheet sheet = hssfWorkbook.createSheet("区域资料");//查询出所有的区域数据List<Area> areas = areaService.findAll();String fileName = "userinf" + ".xls";//设置要导出的文件的名字//新增数据行,并且设置单元格数据int rowNum = 1;String[] headers = {"ID", "城市", "城市编码", "区域", "邮编", "省", "简码"};//headers表示excel表中第一行的表头HSSFRow row = sheet.createRow(0);//在excel表中添加表头for (int i = 0; i < headers.length; i++) {HSSFCell cell = row.createCell(i);HSSFRichTextString text = new HSSFRichTextString(headers[i]);cell.setCellValue(text);}//在表中存放查询到的数据放入对应的列for (Area area : areas) {HSSFRow row1 = sheet.createRow(rowNum);row1.createCell(0).setCellValue(area.getId());row1.createCell(1).setCellValue(area.getCity());row1.createCell(2).setCellValue(area.getCitycode());row1.createCell(3).setCellValue(area.getDistrict());row1.createCell(4).setCellValue(area.getPostcode());row1.createCell(5).setCellValue(area.getProvince());row1.createCell(6).setCellValue(area.getShortcode());rowNum++;}response.setContentType("application/octet-stream");response.setHeader("Content-disposition", "attachment;filename=" + fileName);response.flushBuffer();hssfWorkbook.write(response.getOutputStream());return "ok";
}

springboot启动类

@SpringBootApplication
public class BosManagementAppilcation {
public static void main(String[] args) throws Exception {SpringApplication.run(BosManagementAppilcation.class,args);
}

SpringBoot的easyui实现导入和导出功能到excel相关推荐

  1. Java解析xml文件dom4j篇(基于xml配置文件完成Excel数据的导入、导出功能完整实现)

    DOM4J解析XML文件 dom4j是一个Java的XML API,是jdom的升级产品,用来读写XML文件.另外对比其他API读写XML文件,dom4j是一个十分优秀的JavaXML API,具有性 ...

  2. 可以实现一个前端的 Excel 导入和导出功能吗?

    点击上方 前端Q,关注公众号 回复加群,加入前端Q技术交流 前言 [**负责人 A]:现在报表部分基于接口的 Excel 的导入和导出功能有点慢,前端这边能不能实现一下这个功能,然后我们在比对看看效果 ...

  3. 【实战】1467- 实现一个前端的 Excel 导入和导出功能

    前言 [**负责人 A]:现在报表部分基于接口的 Excel 的导入和导出功能有点慢,前端这边能不能实现一下这个功能,然后我们在比对看看效果!** [**切图仔 B**]:接口这边不能优化一下吗?比如 ...

  4. 给我实现一个前端的 Excel 导入和导出功能

    前言 [负责人 A]:现在报表部分基于接口的 Excel 的导入和导出功能有点慢,前端这边能不能实现一下这个功能,然后我们在比对看看效果! [切图仔 B]: 接口这边不能优化一下吗?比如排查下慢的原因 ...

  5. 前端实现 Excel 导入和导出功能

    注意:Excel的导入.导出功能一般情况下都是服务端完成,这里只是记录一下前端实现方法,供小众场景使用. 这里的实现要依赖第三方库:xlsx. 兼容性:IE9+ 安装 xlsx npm i -S ht ...

  6. 高质量实现单文件导入、导出功能(使用EasyExcel )

    前言 咋说呢,最近交接了一个XXX统计分析系统到我手上,显示页面平平无其,一看导入.导出功能的实现代码,每个小菜单目录里面都对应一个导入导出接口,看起来十分难受!(此处省略1w字内心os)正所谓前人栽 ...

  7. 教您如何三分钟搞定EasyExcel导入与导出功能

    文章目录 目录 前言 一.EasyExcel是什么? 二.使用步骤 1.引入库 2.导入 2.1创建对应excel表格的实体类 2.2后端接收请求入口 2.3业务处理 2.4监听器处理数据 3.导出 ...

  8. Angular导出功能(excel导出功能、文件数据流导出功能、图片的下载导出功能)

    Angular导出功能(excel导出功能.文件数据流导出功能.图片的下载导出功能) 场景1:(直接返回网络地址进行导出的excel) 后台返回的是 : "http://192.168.0. ...

  9. sketch导出html可以跳转,Sketch导入、导出功能说明及技巧

    上回咱们说到Sketch可以导入PDF的时候,有很多Sketch入门的小伙伴都是第一次知道,这说明大家对Sketch这一块功能了解得不够深,今天我们就来好好捋一捋导入.导出的功能和技巧,包括批量导出. ...

最新文章

  1. 用简单的C语言实现多任务轮流切换(模拟操作系统线程机制)【转】
  2. CSP认证201612-1 中间数[C++题解]:遍历
  3. mysql java 分页实体类_Java GUI+mysql+分页查询
  4. 湖南工程学院计算机毕业设计,湖南工程学院毕业设计模板.docx
  5. 液晶显示器背光测试软件,液晶灰阶|饱和度|背光测试
  6. Linux中的一个命令行计算器bc简介
  7. WIX(20121031) 应用设置默认变量
  8. Django,ajax实现表格增删查改,Django内置分页功能。
  9. Java 10中的本地类型推断,或者如果它像鸭子一样嘎嘎叫
  10. iOS Universal Links 配置教程
  11. 列表解析python_Python 列表解析
  12. linux下node-webkit安装vlc插件
  13. php网站采集器,PHP采网址(列表页处理)插件的开发方法
  14. Linux之FTP服务、NFS服务、RPC服务及案例
  15. Ajax基础 Ajax发送Get请求和post请求
  16. 几种RIA技术(富互联网应用程序)比较
  17. 什么叫计算机硬件特征码,如何检测电脑的硬件特征码信息(系统、主板、CPU、硬盘),不使用WMI...
  18. 嵌入式开发—C语言面试题
  19. plex插件显示无服务器,deepin 15.11 安装plex和插件
  20. 基于MFC的圆环的消隐实现

热门文章

  1. git导出代码的方法~archive
  2. Linux中创建快捷方式
  3. 搭建tftp服务器----局域网内不同平台传输文件的桥梁
  4. JQuery在IE中function ()报错函数未定义
  5. Matlab基础学习笔记(五)—— Simulink仿真
  6. 用手机怎么查看网页的源代码0
  7. 关于JeecgBoot 的项目理解、使用心得和改进建议
  8. 尚学堂怎么样?告诉你学渣是怎样成为前端工程师的
  9. 如何让USB Type-C接口手机支持边充电边使用无线领夹麦克风
  10. VB实现BMP图像文件的读取、显示与存储