关于客户端下载文件而不是在服务器生成文件
今天在公司开发时,遇到这样一个需求:可以让客户下载excel文件。我写了代码之后,忽然意识到我这样的生成文件是本地的,也就是说是保存在服务器的。
有这样一个解决方案:先看Service层:
@Overridepublic String downloadPieceCost(PieceCostParam pieceCostParam) {XMLExcel e = new XMLExcel();e.setSheetName("线索收费明细表");String[] title = {"序号","机构名称","购买时间","数据包名称","购买线索条数","线索单价","线索收费"};try {List<PieceCostVO> pieceCostVOList = costRelatedService.getAllPieceCost(pieceCostParam);List<List<Object>> data = new ArrayList<>();for (PieceCostVO vo:pieceCostVOList){List<Object> row = new ArrayList<>();row.add(1+"");row.add(vo.getCompanyName());row.add(vo.getPurchaseTime());row.add(vo.getDataPackName());row.add(vo.getDataSum());row.add(vo.getDataCost());row.add(vo.getCostSum());data.add(row);}String excel = e.buildExcel(title, data);return excel;} catch (Exception ex) {ex.printStackTrace();logger.error("导出报表失败" + ex.getMessage());return e.buildExcel(title, null);}}
其次是Controller层:
@RequestMapping("pieceCost")public void callReport(@RequestBody PieceCostParam pieceCostParam, HttpServletResponse response) throws UnsupportedEncodingException {String excel=excelExportService.downloadPieceCost(pieceCostParam);response.setContentType("application/vnd.ms-excel");String fileName = "线索收费明细-" + TimeHepler.dateToString(new Date(), "ddHHmm") + ".xls";response.addHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8"));OutputStream os;try {os = response.getOutputStream();os.write(excel.getBytes());} catch (IOException e) {e.printStackTrace();}}
返回结果:
<?xml version="1.0" encoding="UTF-8" ?><?mso-application progid="Excel.Sheet"?><Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"><Created>Fri Aug 11 11:36:48 CST 2017</Created></DocumentProperties><Worksheet ss:Name="线索收费明细表"><Table ss:ExpandedRowCount="2">
<Row>
<Cell><Data ss:Type="String">序号</Data></Cell><Cell><Data ss:Type="String">机构名称</Data></Cell><Cell><Data ss:Type="String">购买时间</Data></Cell><Cell><Data ss:Type="String">数据包名称</Data></Cell><Cell><Data ss:Type="String">购买线索条数</Data></Cell><Cell><Data ss:Type="String">线索单价</Data></Cell><Cell><Data ss:Type="String">线索收费</Data></Cell></Row>
<Row>
<Cell><Data ss:Type="String">1</Data></Cell><Cell><Data ss:Type="String">杭州电子放假大学</Data></Cell><Cell><Data ss:Type="String">2017/08/10 16:10:26</Data></Cell><Cell><Data ss:Type="String">杭州电子放假大学的数据包</Data></Cell><Cell><Data ss:Type="Number">0</Data></Cell><Cell><Data ss:Type="String">0.00</Data></Cell><Cell><Data ss:Type="String">0.00</Data></Cell></Row>
</Table>
</Worksheet>
</Workbook>
具体前端怎么生成excel文件,就不管啦!!!!!!!!!!
开玩笑开玩笑 ,工资重要工资重要!等有空看看怎么直接导出文件。
一百年后。。。。我终于知道怎么直接导出文件啦。集体看我的这篇文章─=≡Σ(((つ•̀ω•́)つ-------》Springmvc 生成并且下载文件--直接在浏览器下载。
关于客户端下载文件而不是在服务器生成文件相关推荐
- 如何在内存中创建文件供用户下载,而不是通过服务器下载?
有什么方法可以在客户端上创建文本文件并提示用户下载文本文件,而无需与服务器进行任何交互? 我知道我不能直接写给他们的机器(安全性和全部),但是我可以创建并提示他们保存吗? #1楼 您甚至可以做一个比U ...
- 云服务器怎么拷贝和删除文件,怎样给云服务器拷贝文件
怎样给云服务器拷贝文件 内容精选 换一换 本章节主要介绍云硬盘.弹性文件服务.对象存储服务等存储服务,让您更好的了解这些存储服务. 云服务器备份:云服务器备份可以对普通服务器进行整机备份或部分磁盘备份 ...
- es文件浏览器自动上传ftp服务器,es文件浏览器访问ftp服务器
es文件浏览器访问ftp服务器 内容精选 换一换 WordPress简称WP,最初是一款博客系统,后逐步演化成一款免费的CMS(内容管理系统/建站系统).本文档指导用户使用华为云市场镜像"W ...
- 文件上传linux服务器,Linux 文件上传Linux服务器
进入命令行 在图形化桌面出现之前,与Unix系统进行交互的唯一方式就是借助由shell所提供的文本命令行界面(command line interface,CLI).CLI只能接受文本输入,也只能显示 ...
- web文件怎么传到服务器,web文件传到服务器
web文件传到服务器 内容精选 换一换 工具中所有涉及上传文件功能的,如果需要上传的文件大于1GB或者解压后超过剩余磁盘空间的一半,则需要释放磁盘空间或手动将文件上传至服务器,其他情况可通过Web界面 ...
- 云服务器怎么管理文件,怎么管理云服务器的文件
怎么管理云服务器的文件 内容精选 换一换 区块链服务状态为"异常".•排查项一:区块链依赖的集群.服务器.存储等资源是否正常.•排查项二:云服务器节点资源规格不足.排查项一:区块链 ...
- 服务器传文件的工具,向服务器传文件的工具
向服务器传文件的工具 内容精选 换一换 Web服务端证书,即鲲鹏性能分析工具的Web服务端与Web浏览器之间通讯的证书.已成功登录鲲鹏性能分析工具.只有管理员用户(tunadmin)可以执行生成CSR ...
- 电脑与云服务器传输文件,电脑与云服务器传输文件
电脑与云服务器传输文件 内容精选 换一换 当创建文件系统后,您需要使用云服务器来挂载该文件系统,以实现多个云服务器共享使用文件系统的目的.本章节以Windows 2012版本操作系统为例进行CIFS类 ...
- es文件浏览器添加ftp服务器,es文件浏览器新建ftp服务器
es文件浏览器新建ftp服务器 内容精选 换一换 本文以裸金属服务器的操作系统为"Windows Server 2012 R2 Standard 64bit".云硬盘容量为3 TB ...
最新文章
- SQL2008 提示评估期已过的解决方法
- python 文字语音朗读-python 利用pyttsx3文字转语音
- mapper命名规范_Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件
- 【转】我的CV之路第一篇:ITK是啥?
- linux的基础知识——shell语法
- Myeclipse10.7安装git插件并将Java项目上传到码云(github)
- Python爬虫从入门到放弃(十三)之 Scrapy框架的命令行详解
- 关于对玩过的游戏的想法汇总
- Security log is full,only administrator can log on to fix the problem(安全日志满了)
- 2048小程序代码c语言,微信小程序版2048
- 【吴恩达机器学习】正则化
- python学习手册 第7章 字符串
- PCWorld评10大科技产品:IBM超级计算机上榜
- log4j日志级别配置完成后不生效 系统一直打印debug日志
- assets文件夹资源的访问
- Java版Spring Cloud B2B2C o2o鸿鹄云商平台--概述
- 什么是CSR证书申请文件?
- 等价多米诺骨牌对的数量
- 实现中文唇语识别的多种途径
- 笨鸟之Serlvet解析
热门文章
- 计算机应用基础考试试题及答案 在word中,用户建立的文件默认,2009年10月全国自考计算机应用基础历年真题...
- C语言 switch多分支语句实现根据等级划分分数段
- JavaScript的佛祖保佑
- SPA与MPA的区别
- bcmsh交换芯片调试接口
- Altium Designer 18中的Violations Associated with Components
- 手把手带你入坑树莓派(3B+)之第二篇,使用Putty与电脑VNC远程控制树莓派
- 怎样提高英语思维能力?
- 无人机开发-图传技术浅析
- kettle性能及效率提升