我用的是jxl导出excel,比较简单,最开始我是固定路径不能选择,很局限,后来改了,而且固定路径当把项目放在服务器上时,路径不可行。

在网上各位大神的帮助成功设置响应头,并且可选保存路径。

1.前端

//不是用的ajax,好像ajax不能成功
//js
$("#exportbaofei").click(function(){
window.location.href="${pageContext.request.contextPath}/ExportBaoFeiServlet";
});
//html
<input type="button" value="导出废模" id="exportbaofei"/>

2.servlet

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
log.info("导出报废模的servlet");
MuJUService muJUService = new MuJUService();
//查询
List<Map<String, String>>list =muJUService.exportBaoFei();
//弹框选择路径
WritableWorkbook book = null;
response.reset();
response.setCharacterEncoding("UTF-8");// 设置字符集
// 创建工作流
OutputStream os = null;
try {
// 设置弹出对话框
response.setContentType("application/DOWLOAD");
response.setCharacterEncoding("UTF-8");
// 设置工作表的标题
response.setHeader("Content-Disposition", "attachment; filename=feimu_month.xls");// 设置生成的文件名字、、不能用汉字,没有设置汉字解码
os = response.getOutputStream();
// 初始化工作表
book = Workbook.createWorkbook(os);
} catch (IOException e1) { log.error("导出excel出现IO异常", e1);
// throw new ServiceException("导出失败", e1);
e1.printStackTrace();
} //excel格式设置
WritableFont font1= new WritableFont(WritableFont.createFont("楷体 _GB2312"), 12, WritableFont.NO_BOLD); //设置字体格式为excel支持的格式 WritableFont font3=new WritableFont(WritableFont.createFont("楷体 _GB2312"), 12, WritableFont.NO_BOLD);
WritableCellFormat format1=new WritableCellFormat(font1);
//把水平对齐方式指定为居中
try {
format1.setAlignment(jxl.format.Alignment.CENTRE);
//把垂直对齐方式指定为居中
format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
//设置自动换行
format1.setWrap(true);
} catch (WriteException e1) {
// TODO Auto-generated catch block
log.error(e1);
e1.printStackTrace();
} // WritableWorkbook book = null;
try {
// 打开文件
// book = Workbook.createWorkbook(new File(filename+".xls"));
// 生成名为"学生"的工作表,参数0表示这是第一页
WritableSheet sheet = book.createSheet("当月报废单", 0); sheet.addCell(new Label(0,0,"序号",format1));
for(int i = 1;i<12;i++){
sheet.setColumnView(i,15);
}
sheet.addCell(new Label(1,0,"下单时间",format1));
sheet.addCell(new Label(2,0,"返回时间",format1));
sheet.addCell(new Label(3,0,"维修单号",format1));
sheet.addCell(new Label(4,0,"产品图号",format1));
sheet.addCell(new Label(5,0,"模具图号",format1));
sheet.addCell(new Label(6,0,"模具规格",format1));
sheet.addCell(new Label(7,0,"维修模号",format1));
sheet.addCell(new Label(8,0,"维修数量",format1));
sheet.addCell(new Label(9,0,"维修原因",format1));
sheet.addCell(new Label(10,0,"报废模号",format1));
sheet.addCell(new Label(11,0,"报废数量",format1));
if(list!=null && !list.isEmpty()){
int rows =1;//hang
int cols = 0;//lie
for (Map<String, String> map : list) {
sheet.addCell(new Number(0, rows, rows));
sheet.addCell(new Label(1,rows,map.get("wx_xdan_data"),format1));
sheet.addCell(new Label(2,rows,map.get("wx_back_data"),format1));
sheet.addCell(new Label(3,rows,map.get("wx_danhao"),format1));
sheet.addCell(new Label(4,rows,map.get("wx_product_num"),format1));
sheet.addCell(new Label(5,rows,map.get("wx_mj_num"),format1));
sheet.addCell(new Label(6,rows,map.get("wx_mj_guige"),format1));
sheet.addCell(new Label(7,rows,map.get("wx_muhao"),format1));
sheet.addCell(new Label(8,rows,map.get("wx_count"),format1));
sheet.addCell(new Label(9,rows,map.get("wx_reason"),format1));
sheet.addCell(new Label(10,rows,map.get("wx_baofei_muhao"),format1));
sheet.addCell(new Label(11,rows,map.get("wx_baofei_count"),format1));
rows++;
}
}
book.write(); } catch (Exception e) {
log.error(e);
System.out.println(e);
}finally{
if(book!=null){
try {
book.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} }

Java web项目JXl导出excel,(从eclipse上移动到tomact服务器上,之路径更改)的更多相关文章

  1. Java web项目 Jxl 读取excel 并保存到数据库,(从eclipse上移动到tomact服务器上,之路径更改,)

    最开始在eclipse中测试的时候,并没有上传到服务器上,后来发现,想要读取数据必须上传服务器然后把文件删除就可以了,服务器不可以直接读取外地的文件.用到jxl 1.上传到服务器 前端 <for ...

  2. Java web项目 上传图片保存到数据库,并且查看图片,(从eclipse上移动到tomact服务器上,之路径更改,包括显示图片和导出excel)

    //项目做完之后,在本机电脑运行完全正常,上传图片,显示图片,导出excel,读取excel等功能,没有任何问题,但是,当打成war包放到服务器上时,这些功能全部不能正常使用. 最大的原因就是,本机测 ...

  3. java中使用jxl导出Excel表格详细通用步骤

    该方法一般接收两个参数,response和要导出的表格内容的list. 一般我们将数据库的数据查询出来在页面进行展示,根据用户需求,可能需要对页面数据进行导出. 此时只要将展示之前查询所得的数据放入s ...

  4. Java Web利用POI导出Excel简单例子

    采用Spring mvc架构: Controller层代码如下 @Controller public class StudentExportController{ @Autowired private ...

  5. Java web 开发填坑记 2 -如何正确的创建一个Java Web 项目

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/72566261 本文出自[赵彦军的博客] Java web 开发填坑记 1-如何正确 ...

  6. 利用eclipse新建的java web项目没有部署描述符web.xml文件怎么办?

    原文转自:http://blog.csdn.net/suyu_yuan/article/details/50947007 利用eclipse新建的Java Web项目没有部署描述符web.xml文件, ...

  7. Eclipse部署Java Web项目到Tomcat出错

    1.今天,我打开Eclipse,准备将一个Java Web项目部署到Tomcat中, 结果弹出提示错误窗口,具体如下: (1)出错详情 Could not publish server configu ...

  8. 全网最详细的IDEA、Eclipse和MyEclipse之间于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)

    不多说,直接上干货! IDEA [适合公司业务]全网最详细的IDEA里如何正确新建[普通或者Maven]的Java web项目并发布到Tomcat上运行成功[博主强烈推荐](类似eclipse里同一个 ...

  9. 【适合公司业务】全网最详细的IDEA里如何正确新建【普通或者Maven】的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(类似eclipse里同一个workspace下【多个子项目】并存)(图文详解)

    不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 如果是在Myeclipse里,则是File -> new -> ...

随机推荐

  1. jquery $.ajax 获取josn数据

    <script type="text/javascript" src="jquery-1.9.1.js"></script> <s ...

  2. 第十八章 vi/vim文本编辑器介绍

    一.vi/vim文本编辑器介绍 1.含义: vi就是一个文本编辑器 2.为什么学习: 系统配置 编写脚本 vim就是vi的升级版 高级版 [root@jindada ~]# [root@jindada ...

  3. win10+ubuntu18.04lts双系统安装葵花宝典(解疑篇)

    本文将对win10+ubuntu18.04lts双系统安装过程中的一些操作的目的和可能遇到的问题进行解释. 文章目录 如何正确分区 创建双系统后直接进入了windows怎么办 修改ubuntu开机界面 ...

  4. Phoenix创建索引源码过程

    date: 2020-09-27 13:50:00 updated: 2020-09-28 16:30:00 Phoenix创建索引源码过程 org.apache.phoenix.index.Inde ...

  5. Spring Boot 学习摘要--关于配置

    date: 2019-12-27 09:00:00 updated: 2019-12-30 13:20:00 Spring Boot 学习摘要--关于配置 学习教程来自:B站 尚硅谷 1. 关于配置 ...

  6. Linux下更新JDK版本

    date: 2018-11-18 11:04:13 updated: 2018-11-18 11:04:13 1.输入 su 进入管理员权限 2.输入 rpm -qa | grep jdk 查看当前系 ...

  7. 从创建进程到进入main函数,发生了什么?

    前几天,读者群里有小伙伴提问:从进程创建后,到底是怎么进入我写的main函数的? 今天这篇文章就来聊聊这个话题. 首先先划定一下这个问题的讨论范围:C/C++语言 这篇文章主要讨论的是操作系统层面上对 ...

  8. Luogu P4234 最小差值生成树

    题意 给定一个 \(n\) 个点 \(m\) 条边的有权无向图,求出原图的一棵生成树使得该树上最大边权与最小边权的差值最小. \(\texttt{Data Range:}1\leq n\leq 5\t ...

  9. TypeError: render() got an unexpected keyword argument ‘renderer‘

    关注公众号"轻松学编程"了解更多 原因 在使用xadmin时,如果是Django2版本以上的会报这个错误.这是由于xadmin中的文件xadmin\views\dashboard. ...

  10. CSP-S 2020模拟训练题1-信友队T1 四平方和

    题意简述 \(n\)是正整数,其四个最小的因子分别为\(d_1,d_2,d_3,d_4\). 求对于所有的\(n \le m\)满足 \[d_1^2+d_2^2+d_3^2+d_4^2=n \] 的\ ...