后台代码:

@ResponseBody@RequestMapping(value = "export")public AjaxJson exportFile(Office office, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {AjaxJson j = new AjaxJson();try {String fileName = "机构"+DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";Page<Office> page = officeService.findPage(new Page<Office>(request, response, -1), office);for(int i=0;i<page.getList().size();i++){System.out.println(page.getList().get(i));}//new ExportExcel("机构", Office.class).setDataList(page.getList()).write(response, fileName).dispose();String path = System.getProperty("catalina.home");createExcel(response,page.getList(),fileName,path);downloadExcel(response,path+fileName);j.setSuccess(true);j.setMsg("导出成功!");return j;} catch (Exception e) {e.printStackTrace();j.setSuccess(false);j.setMsg("导出测试记录失败!失败信息:"+e.getMessage());}return j;
}public void downloadExcel(HttpServletResponse response,String path) throws IOException{//1、设置响应的头文件,会自动识别文件内容response.setContentType("multipart/form-data");//2、设置Content-Dispositionresponse.setHeader("Content-Disposition", "attachment;filename=test.xls");OutputStream out = null;InputStream in = null;try {//3、输出流out = response.getOutputStream();//4、获取服务端生成的excel文件,这里的path等于4.8中的pathin = new FileInputStream(new File(path));//5、输出文件int b;while((b=in.read())!=-1){out.write(b);}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{in.close();out.close();}
}public void createExcel(HttpServletResponse response,List<Office> list,String filename,String path) throws IOException{//1、创建workbook,对应一个ExcelHSSFWorkbook wb = new HSSFWorkbook();//2、创建一个sheet,参数为sheet的名称HSSFSheet sheet = wb.createSheet(filename);//3、创建第一行HSSFRow row = sheet.createRow(0);//4、创建第一行的列信息,也就是列名HSSFCell cell = row.createCell(0);cell.setCellValue("机构名称");cell = row.createCell(1);cell.setCellValue("机构编号");//5、写入数据for(int i=1;i<=list.size();i++){row = sheet.createRow(i);cell = row.createCell(0);cell.setCellValue(list.get(i-1).getName());cell = row.createCell(1);cell.setCellValue(list.get(i-1).getCode());}//6、生成文件//String path = System.getProperty("catalina.home");FileOutputStream os = new FileOutputStream(path+filename);;try {wb.write(os);} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{os.close();}}

前端代码:

$("#export").click(function(){//导出Excel文件alert("sasasas");window.location.href = '${ctx}/sys/office/export';});

Java在服务器端生成Excel并下载到本地相关推荐

  1. java通过poi生成excel并下载出现文件打不开、文件格式和文件扩展名无效问题的分析与解决

    需求描述: 需要完成这样一个功能:后台通过poi生成excle,前台点击按钮可直接下载. 代码逻辑(核心部分): 第一种: public String generatePlanExcel(@Reque ...

  2. java 下载后删除,在服务器端生成文件后,下载后并删除,改了后发现文件变成空白解决思路...

    当前位置:我的异常网» Java Web开发 » 在服务器端生成文件后,下载后并删除,改了后发现文件 在服务器端生成文件后,下载后并删除,改了后发现文件变成空白解决思路 www.myexception ...

  3. java使用jxl生成excel表格,jsp使用js下载excel文件xls

    java使用jxl生成excel表格,jsp使用js下载excel文件 后端代码 maven jar包 主体代码逻辑 引入的jar包 具体代码段 重点详解 表头和表格内容两种格式 直接将 HttpSe ...

  4. java使用poi生成Excel文件并合并单元格

    java使用poi生成Excel文件并合并单元格        业务需要根据 分管部门 字段进行合并,现在提供一种思路. controller层 @Inject(target = "/inf ...

  5. 【微信小程序】生成excel并下载 | 微信 | excel | 文件下载 |

    生成excel并下载 有一个需求就是通过微信云数据库导出数据到excel并且下载到本地.首先对这个任务进行分解. 一 通过云数据库读取数据生成excel 在前端页面index.wxml添加按钮,绑定函 ...

  6. java poi实现Word生成表格并下载至本地

    首先我来讲一下需要用到的类: XWPFDocument代表一个docx文档,其可以用来读docx文档,也可以用来写docx文档 XWPFParagraph代表文档.表格.标题等种的段落,由多个XWPF ...

  7. java Aspose.Words实现Word生成表格并下载至本地

    一.Maven加入Aspose.Words依赖 <dependency><groupId>com.aspose</groupId><artifactId> ...

  8. phpexcel生成excel并下载

    Loader::import('PHPExcel.Classes.PHPExcel'); // tp5中只需将phpexcel文件放入extend文件夹中,即可采用该方法引入,需要先 use thin ...

  9. java用itextPDF生成PDF文件保存至本地并上传至ftp服务器

    标题java用itextPDF生成PDF文件保存至本地并上传至ftp服务器 所需jar :itext-asian-5.2.0.jar,itextpdf-5.5.5.jar,commons-net-3. ...

最新文章

  1. 嵌入式系统学习笔记之五-uboot常用命令之补充
  2. oracle中代替in 和not in 高效方法
  3. BZOJ 1305 dance跳舞(最大流+二分答案)
  4. JUnit4参数化和理论示例
  5. 14.面向对象-----UML类图
  6. 通货膨胀时是否提前还本付息--郎咸平
  7. GitHub更新Fork代码
  8. php oauth单点登陆,php单点登录
  9. LWIP协议栈详解(1)_LWIP协议与网络分层
  10. 广告视频投放展示平台 springboot+vue
  11. beamer插入参考文献并引用(BibTex)
  12. 分享一个无意间发现的躺赚网络创业小项目!
  13. 安卓键 adb shell input keyevent code
  14. 文章/网站分享工具——百度分享
  15. FRM 5.3业绩衡量比率
  16. 微信小程序md5加密支持中文和特殊字符
  17. 关于 GeneXus 起源的几点思考
  18. MACOS PowerPoint导出指定分辨率的图片
  19. pandas如何快速添加一行?
  20. BUU-Crypto-世上无难事

热门文章

  1. 摸鱼必备!3 个 Linux 命令行工具让你假装很忙!
  2. qiskit的新功能
  3. MindManager2020密钥思维导图学习方法使用教程
  4. 浅拷贝和深拷贝的基本含义和应用场景
  5. 白头发越来越多怎么办?30多岁白头发越来越多怎么办?
  6. 使用gitblit配置git代码版本管理服务器
  7. 微信内h5页面打开小程序【详细教程】
  8. 面试官:什么是三范式?它有什么用?
  9. 新建立QQ群C#技术相关JAVA技术相关
  10. QTcentralWidget 禁止标志———没有设置布局