jsp请求java返回pdf、excel与word
1,返回pdf关键代码
/**
* @todo
* @param
* @date 2019年3月8日
* @author yanan
*/
@RequestMapping("/getPdf")
public void getPdf(HttpServletRequest req, HttpServletResponse response)throws Exception {
response.setContentType("application/pdf"); // 设置返回内容格式
try {
String pdfPath="放置你的指定pdf文件路径";
// 判断该路径下的文件是否存在
File file = new File(pdfPath);
if (file.exists()) {
DataOutputStream temps = new DataOutputStream(response.getOutputStream());
DataInputStream in = new DataInputStream(new FileInputStream(pdfPath));
byte[] b = new byte[2048];
while ((in.read(b)) != -1) {
temps.write(b);
temps.flush();
}
in.close();
temps.close();
} else {
System.out.println(" 文件不存在!");
} } catch (Exception e) {
logger.info(e.getMessage());
}
}
2,返回word关键代码
/**
* @todo 导出word
* @param
* @date 2019年3月8日
* @author yanan
*/
@RequestMapping(value="/exportWord",method=RequestMethod.POST)
public void exportWord(HttpServletResponse response,HttpServletRequest req) throws IOException{
response.setContentType("application/doc"); // 设置返回内容格式
response.setHeader("Content-disposition","attachment; filename="+new String("你的文件名称".getBytes("utf-8"), "8859_1"));
DataOutputStream temps = new DataOutputStream(response.getOutputStream());
temps.write("你的文件内容".getBytes());
temps.flush();
temps.close();
}
3,返回excel关键代码
/**
* @todo 导出excel
* @param tableHtml 要导出的table表格示例:<table><tr><td>aaa</td></tr></table>
* @param fileName 要导出的文件名
* @date 2019年3月8日
* @author yanan
*/
@RequestMapping(value="/exportExcel",method=RequestMethod.POST)
public void export(HttpServletResponse response,String tableHtml,String fileName,HttpServletRequest req) throws IOException{
String cssStyle = req.getParameter("cssStyle");//样式
cssStyle=cssStyle==null?"":cssStyle;
exportDataExcel(response, tableHtml, fileName,cssStyle);
}
private static void exportDataExcel(HttpServletResponse response, String tableHtml, String fileName,String cssStyle) throws IOException {
response.setCharacterEncoding("UTF-8");
//返回头设置文件名。Content-Disposition参数本来是为了在客户端另存文件时提供一个建议的文件名,但是考虑到安全的原因,就从规范中去掉了这个参数。
//但是由于很多浏览器已经能够支持这个参数,所以只是在规范文档中列出,但是要注意这个不是HTTP/1.1的标准参数。
//若不用java.net.URLEncoder.encode,则中文文件名乱码无法显示(英文部分不影响)
response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName+".xls", "UTF-8"));
//返回内容为excel
response.setContentType("application/ms-excel;charset=UTF-8");
PrintWriter out = response.getWriter();;
tableHtml=String.format("<style type='text/css'>%s</style>%s", cssStyle, tableHtml);
out.print(tableHtml);
out.close();
}
利用poi导出,移步我之前的文章@java利用poi生成/读取excel表格
jsp请求java返回pdf、excel与word的更多相关文章
- 12、借助Jacob实现Java打印报表(Excel、Word)
12.使用Jacob来处理文档 Word或Excel程序是以一种COM组件形式存在的.如果能够在Java中调用相应组件,便能使用它的方法来获取文档中的文本信息.Jacob是一个JAVA到微软的COM接 ...
- java将pdf文件转为word
import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.Output ...
- Java 将PDF/XPS转为Word/html /SVG/PS/PCL/PNG、PDF和XPS互转(基于Spire.Cloud.SDK for Java)
Spire.Cloud.SDK for Java提供了接口PdfConvertApi通过convert()方法将PDF文档以及XPS文档转为指定文档格式,如转PDF为Word(支持Docx.Doc). ...
- 从jsp到java文件再返回到前台页面的过程
客户端请求jsp页面总共分为三个阶段: <%@ page language="java" contentType="text/html; charset=utf-8 ...
- .net mvc使用FlexPaper插件实现在线预览PDF,EXCEL,WORD的方法
FlexPaper插件可以实现在浏览器中在线预览pdf,word,excel等. 在网上看到很多关于这个插件实现预览的技术,但是很难做到word和excel在线预览. pdf很好实现. 首先下载相关的 ...
- Java实现PDF和Excel生成和数据动态插入以及导出
一.序言 Excel.PDF的导出.导入是我们工作中经常遇到的一个问题,刚好今天公司业务遇到了这个问题,顺便记个笔记以防下次遇到相同的问题而束手无策. 公司有这么两个需求: 需求一.给了一个表单,让把 ...
- JAVA实现office文档(word、excel、ppt等)、压缩包在线预览,支持禁止下载功能、支持PC和手机
我们使用的是永中的第三方服务.支持直接转换文档的线上地址,也可以直接把文档上传到官方服务器上 官方文档地址:https://www.yozodcs.com/page/help.html#link152 ...
- java使用poi读取ppt文件和poi读取excel、word示例
java使用poi读取ppt文件和poi读取excel.word示例 http://www.jb51.net/article/48092.htm
- Java中用Apache POI生成excel和word文档
概述: 近期在做项目的过程中遇到了excel的数据导出和word的图文表报告的导出功能.最后决定用Apache POI来完毕该项功能.本文就项目实现过程中的一些思路与代码与大家共享.同一时候.也作为自 ...
随机推荐
- [STM32F103]外部中断
① 初始化IO口为输入. GPIO_Init(); ② 开启IO口复用时钟. RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); ③ 设置IO口与中 ...
- javap浅析-书籍第3章的手写稿样稿
转载于:[xieyu_zy](http://blog.csdn.net/xieyuooo/article/details/17452383) 3.2.1javap命令工具 第1章中我们就提到了有些地方 ...
- class中限定绑定属性__slots__方法
使用__slots__但是,如果我们想要限制class的属性怎么办?比如,只允许对Student实例添加name和age属性.为了达到限制的目的,Python允许在定义class的时候,定义一个特殊的 ...
- 解决wxParse空格不解析的问题
遇到的问题: 相似问题:https://blog.csdn.net/qq_41619741/article/details/85774865 http://html51.com/info-41786- ...
- C++实现根据路径读取文件内容
已知文件路径,用C++实现读取对应文件的内容,代码如下: bool LoadShaderStr(const char* szShaderPath,string& strShaderStr) { ...
- css边框的一些属性
边框样式值如下:none : 无边框.与任何指定的border-width值无关hidden : 隐藏边框.IE不支持dotted : 在MAC平台上IE4+与WINDOWS和UNIX平台上IE5.5 ...
- rest_famework 增删改查初第二阶段(中级,此阶段是优化初级阶段的代码)的使用
url: re_path('authors/$', views.AuthorView.as_view()),re_path('authors/(\d+)/$', views.AuthorDetailV ...
- python_14 多态,封装
多态: 由不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同. 多态的概念指出了对象如何通过他们的共同的属性和动作来操作及访问,而不需考虑他们的类. class H2O: def __init_ ...
- FICO-初级会计学
初级会计学 https://wenku.baidu.com/view/39257b1a59eef8c75fbfb348.html?from=search https://wenku.baidu.com ...
- css 之过渡效果
之前写css的效果,都是使用js 来完成的,但是写js比较耗费时间,有时候逻辑不对,还出不来效果,所以也比较烦:所以一些简单的效果,就使用css 来完成会比较好一些,不必耗费太多的精力: 但是写css ...