/**

* 描述:下载外部案件导入模板

* @param response

* @param request

* @author songfayuan

* 2018年6月7日下午5:03:59

*/

@RequestMapping("/downloadExcel")

@ResponseBody

public void downloadExcel(HttpServletResponse response,HttpServletRequest request) {

//方法一:直接下载路径下的文件模板

try {

//获取要下载的模板名称

String fileName = "ApplicationImportTemplate.xlsx";

//设置要下载的文件的名称

response.setHeader("Content-disposition", "attachment;fileName=" + fileName);

//通知客服文件的MIME类型

response.setContentType("application/vnd.ms-excel;charset=UTF-8");

//获取文件的路径

String filePath = getClass().getResource("/template/" + fileName).getPath();

FileInputStream input = new FileInputStream(filePath);

OutputStream out = response.getOutputStream();

byte[] b = new byte[2048];

int len;

while ((len = input.read(b)) != -1) {

out.write(b, 0, len);

}

//修正 Excel在“xxx.xlsx”中发现不可读取的内容。是否恢复此工作薄的内容?如果信任此工作簿的来源,请点击"是"

response.setHeader("Content-Length", String.valueOf(input.getChannel().size()));

input.close();

//return Response.ok("应用导入模板下载完成");

} catch (Exception ex) {

logger.error("getApplicationTemplate :", ex);

//return Response.ok("应用导入模板下载失败!");

}

//方法二:可以采用POI导出excel,但是比较麻烦

/*try {

Workbook workbook = new HSSFWorkbook();

request.setCharacterEncoding("UTF-8");

response.setCharacterEncoding("UTF-8");

response.setContentType("application/x-download");

String filedisplay = "外部案件导入模板.xls";

filedisplay = URLEncoder.encode(filedisplay, "UTF-8");

response.addHeader("Content-Disposition", "attachment;filename="+ filedisplay);

// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet

Sheet sheet = workbook.createSheet("外部案件导入模板");

// 第三步,在sheet中添加表头第0行

Row row = sheet.createRow(0);

// 第四步,创建单元格,并设置值表头 设置表头居中

CellStyle style = workbook.createCellStyle();

style.setAlignment(CellStyle.ALIGN_CENTER); // 创建一个居中格式

Cell cell = row.createCell(0);

cell.setCellValue("商品名称");

cell.setCellStyle(style);

sheet.setColumnWidth(0, (25 * 256)); //设置列宽,50个字符宽

cell = row.createCell(1);

cell.setCellValue("商品编码");

cell.setCellStyle(style);

sheet.setColumnWidth(1, (20 * 256)); //设置列宽,50个字符宽

cell = row.createCell(2);

cell.setCellValue("商品价格");

cell.setCellStyle(style);

sheet.setColumnWidth(2, (15 * 256)); //设置列宽,50个字符宽

cell = row.createCell(3);

cell.setCellValue("商品规格");

cell.setCellStyle(style);

sheet.setColumnWidth(3, (15 * 256)); //设置列宽,50个字符宽

// 第五步,写入实体数据 实际应用中这些数据从数据库得到

row = sheet.createRow(1);

row.createCell(0, Cell.CELL_TYPE_STRING).setCellValue(1);

row.createCell(1, Cell.CELL_TYPE_STRING).setCellValue(2);

row.createCell(2, Cell.CELL_TYPE_STRING).setCellValue(3); //商品价格

row.createCell(3, Cell.CELL_TYPE_STRING).setCellValue(4); //规格

// 第六步,将文件存到指定位置

try

{

OutputStream out = response.getOutputStream();

workbook.write(out);

out.close();

}

catch (Exception e)

{

e.printStackTrace();

}

} catch (Exception e) {

e.printStackTrace();

}*/

}

模板位置:

java excel模板 下载_Java从服务端下载Excel模板文件相关推荐

  1. java web 跨域_java web服务端CORS跨域配置

    CORS介绍 CORS-CrossOrigin Resource Sharing,即跨域资源共享,它定义了一种服务器和浏览器的交互方式来确定是否允许跨域请求.CORS简单灵活,但有风险性,能实现aja ...

  2. oracle服务端安装和下载,oracle 11g 服务端下载地址及安装说明

    Oracle 11g 服务端的安装步骤 Ø  简介 本文主要介绍 Oracle 11g 服务端的安装步骤,在介绍之前说明以下几点: 1.   所安装的服务器是本机的虚拟机,操作系统为 Windows ...

  3. teamspeak3服务器搭建_Teamspeak3服务器架设下载_Teamspeak3 Server 服务端下载 3.0.13.8 官方版_当载软件站...

    软件特色 1.C/S合理的架构开发 2.多种编解码方式,从低带宽消耗到GSM,带宽音质随意调节 3.可创建多频道多服务器,密码保护的服务器及频道 4.完全可自定义的组合键(目前只适用WINDOWS用户 ...

  4. Java 使用socket实现从服务端下载文件[TCP]

    这篇和上一篇可以对应上了,使用的都是Socket,TCP. 注意我们这一次是以音频文件做的演示,实际上换成其他二进制文件(如视频.图片)实现代码也完全样. 如果是文本文件,则需要做小部分修改,用字符流 ...

  5. java上传音频到服务器_Java 客户端向服务端上传mp3文件数据的实例代码

    客户端: package cn.itcast.uploadpicture.demo; import java.io.BufferedInputStream; import java.io.FileIn ...

  6. C#在客户端和服务端操作Excel文件

    一.在客户端把数据导入到Excel文件步骤 1.创建Excel application对象,打开或生成Excel文件 //服务端创建StringBuilder对象     System.Text.St ...

  7. Response对象以及从服务端下载文件(解决乱码问题)

    学java也有一段时间了,一直都没有写过博客,今天来写第一篇java学习经历的博客吧 今天学习的主要是response对象,在这里先放一个思维导图 Response对象作为响应,可以实现从服务端写数据 ...

  8. 小程序表单提交,服务端推送模板消息通知

    1.小程序按钮表单,提交formid和openid 注:https://blog.csdn.net/qq_38191191/article/details/80982732 2.发送网络请求(小程序点 ...

  9. java开发的微信公众号服务端生产环境中的两个大坑

    摘要: 我们开发的公众号,由于将功能开发完毕后,未对服务进行压力测试,因此用到的组件中的参数值全是默认的,服务上线后一段时间运行得倒没什么问题,随着服务得访问量增加,一些多线程并发的问题就逐步暴露出来 ...

最新文章

  1. 关于第三方IOS的checkBox框架的使用
  2. python中的高阶函数
  3. Android的沉浸式状态栏与变色状态栏详解
  4. Linux编程下open()函数的用法
  5. 厌倦了SWT TABLE,何不试试KTABLE?
  6. 2048小游戏主要算法实现
  7. TLS/SSL 工作原理及握手过程详解
  8. 禁用windows10更新_如何在Windows 10中禁用投影
  9. C语言和C++的区别整理详解!
  10. C++ const使用情况总结
  11. PHP error_reporting() 错误控制函数功能详解
  12. android中FileObserver的运用
  13. .NET 2.0中的企业库异常处理块
  14. oracle sysman 不存在_Oracle数据库中SYS、SYSTEM、DBSNMP、SYSMAN四用户的区别
  15. 第四篇Scrum冲刺博客
  16. Flume防止重复消费——断点续传
  17. 学习ZYNQ问题记录
  18. 永远的友谊_友谊的传递属性-温馨介绍的重要性
  19. Itext pdf的页眉页脚
  20. 《机器学习实战》学习笔记第八章-回归

热门文章

  1. 【美化§§3D安卓主题win7电脑主题】
  2. 武林外传扑克设计完成 奖励本周发出
  3. jyr路由器虚拟服务器,免费路由JCG JYR-N495设置上网教程具体讲解
  4. TcaplusDB君 · 行业新闻汇编(四
  5. EasyGBS定制项目添加“设备标签”模块的代码实现分享
  6. Python实现十大经典排序 I
  7. WebSocket:扫码登录
  8. 网页截图 API数据接口
  9. 七牛云-Atlab API-鉴黄、暴恐、政治人物识别
  10. 关于XLL加载项动态加载、卸载的演示及XLL函数自定义类型注册的演示