我用的是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. linux查看登录用户

    [root@localhost ~]# w 11:01:06 up 3 days, 12:40, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FRO ...

  2. selenium基础--五种定位方式

    find_element_by_name find_element_by_id find_element_by_xpath find_element_by_link_text find_element ...

  3. Linux系列:快捷键、目录结构、用户目录

    一.快捷键 1.历史命令 查看历史命令:history [root@centos-master ~]# history 1 2020-10-25 21:03:39 2 2020-09-17 20:43 ...

  4. c# vs2019 Window服务搭建

    一.创建一个Windows Service         我的IDE开发工具使用的是vs2019,和之前的vs版本不大相同,所有添加了详细的截图说明.         首先,选择新建项目,项目类型选 ...

  5. Graph-to-ID task

    首先图像是一个二维的结构,CNN提取图片的特征,但是是local的,通过kenel的形式,不断的图上移动,通过卷积的形式, 无论移动到哪个位置,内部的结构都是不变的,这就是参数共享. 这个所说的图像显 ...

  6. 4G DTU在使用时有哪些注意事项?

    4G DTU是用来帮助工业设备快速连接4G网络的设备.众山物联网研发.生产的LTE660正是这样一款功能强大的4G联网"利器". DTU是英文Data Transfer unit的 ...

  7. sync_with_stdio(false)的副作用

    sync_with_stdio()的一个特性 水一篇随笔 其实对于用快读的大佬来说没什么用,但还是提一下 ios::sync_with_stdio(false)用处是"关闭同步", ...

  8. Frontpage 三种回车键

    Frontpage的回车键有三种:enter.shift+enter.ctrl+enter. enter键对应于HTML中的<p></p>,是一个段落的分界符. shift+e ...

  9. GraphX 在图数据库 Nebula Graph 的图计算实践

    不同来源的异构数据间存在着千丝万缕的关联,这种数据之间隐藏的关联关系和网络结构特性对于数据分析至关重要,图计算就是以图作为数据模型来表达问题并予以解决的过程. 一.背景 随着网络信息技术的飞速发展,数 ...

  10. UDP局域网通信的Java实现及Android平台尝试

    局域网通信已经很少被他人所提及了,我曾经还尝试过通过蓝牙构建通信网络,这次有机会尝试UDP局域网通信,在这里把一些基本过程和在Android平台上的问题记录一下. 1. UDP基础知识 1.1 什么是 ...