我用的是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. centos8平台基于iftop监控网络流量

    一,iftop的作用: 基于ip统计外部机器与本机之间的网络流量, 可以方便的查看各客户端是否有非正常的到本机的访问 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnbl ...

  2. node服务器基本搭建

    const http = require('http') // 引入http模块 http.createServer(function(req,res){ // 创建一个http服务器 // 这里是一 ...

  3. C# indexof和indexofany区别(转)

    定位子串是指在一个字符串中寻找其中包含的子串或者某个字符.在String类中,常用的定位子串和字符的方法包括IndexOf/LastIndexOf及IndexOfAny/LastIndexOfAny, ...

  4. java8中哪个类用到了开放地址解决冲突

    hreadlocalmap使用开放定址法解决haah冲突,hashmap使用链地址法解决hash冲突

  5. drf ( 学习第四部 )

    目录 DRF框架中常用的组件 分页Pagination 异常处理Exceptions 自动生成接口文档 安装依赖 设置接口文档访问路径 访问接口文档网页 Admin 列表页配置 详情页配置 Xadmi ...

  6. k8s各组件启动时, -v参数指定的日志级别

    k8s 相关组件启动时 -v参数指定的日志级别 --v=0 Generally useful for this to ALWAYS be visible to an operator. --v=1 A ...

  7. 《Head First 设计模式》:与设计模式相处

    正文 一.设计原则 1.封装变化 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起. 2.针对接口编程,不针对实现编程 "针对接口编程"真正的意思是& ...

  8. STM32入门系列-STM32外设地址映射

    片上外设区分为四条总线,根据外设速度的不同,不同总线挂载着不同的外设,APB1挂载低速外设,APB2和AHB挂载高速外设.相应总线的最低地址我们称为该总线的基地址,总线基地址也是挂载在该总线上的首个外 ...

  9. 20200722_Oracle添加表空间、用户,用户授权

    --创建表空间 CREATE TABLESPACE aifu --表空间名 aifu LOGGING DATAFILE 'D:\dev_config\OracleTableSpaces\aifu.DB ...

  10. Django项目打分系统

    Django项目之个人网站 关注公众号"轻松学编程"了解更多. Github地址:https://github.com/liangdongchang/MyWeb.git 感兴趣的可 ...