Java web项目JXl导出excel,(从eclipse上移动到tomact服务器上,之路径更改)
我用的是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服务器上,之路径更改)的更多相关文章
- Java web项目 Jxl 读取excel 并保存到数据库,(从eclipse上移动到tomact服务器上,之路径更改,)
最开始在eclipse中测试的时候,并没有上传到服务器上,后来发现,想要读取数据必须上传服务器然后把文件删除就可以了,服务器不可以直接读取外地的文件.用到jxl 1.上传到服务器 前端 <for ...
- Java web项目 上传图片保存到数据库,并且查看图片,(从eclipse上移动到tomact服务器上,之路径更改,包括显示图片和导出excel)
//项目做完之后,在本机电脑运行完全正常,上传图片,显示图片,导出excel,读取excel等功能,没有任何问题,但是,当打成war包放到服务器上时,这些功能全部不能正常使用. 最大的原因就是,本机测 ...
- java中使用jxl导出Excel表格详细通用步骤
该方法一般接收两个参数,response和要导出的表格内容的list. 一般我们将数据库的数据查询出来在页面进行展示,根据用户需求,可能需要对页面数据进行导出. 此时只要将展示之前查询所得的数据放入s ...
- Java Web利用POI导出Excel简单例子
采用Spring mvc架构: Controller层代码如下 @Controller public class StudentExportController{ @Autowired private ...
- Java web 开发填坑记 2 -如何正确的创建一个Java Web 项目
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/72566261 本文出自[赵彦军的博客] Java web 开发填坑记 1-如何正确 ...
- 利用eclipse新建的java web项目没有部署描述符web.xml文件怎么办?
原文转自:http://blog.csdn.net/suyu_yuan/article/details/50947007 利用eclipse新建的Java Web项目没有部署描述符web.xml文件, ...
- Eclipse部署Java Web项目到Tomcat出错
1.今天,我打开Eclipse,准备将一个Java Web项目部署到Tomcat中, 结果弹出提示错误窗口,具体如下: (1)出错详情 Could not publish server configu ...
- 全网最详细的IDEA、Eclipse和MyEclipse之间于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)
不多说,直接上干货! IDEA [适合公司业务]全网最详细的IDEA里如何正确新建[普通或者Maven]的Java web项目并发布到Tomcat上运行成功[博主强烈推荐](类似eclipse里同一个 ...
- 【适合公司业务】全网最详细的IDEA里如何正确新建【普通或者Maven】的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(类似eclipse里同一个workspace下【多个子项目】并存)(图文详解)
不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 如果是在Myeclipse里,则是File -> new -> ...
随机推荐
- 皕杰报表:连接数据库失败,请检查数据源配置(oracle.jdbc.driver.OracleDriver)
皕杰报表:连接数据库失败,请检查数据源配置(oracle.jdbc.driver.OracleDriver)问题解决: 缺少了classes12.jar 在窗口--首选项--报表运行时配置--添加-- ...
- 如何理解码分复用中的码分多址CDMA?
如何理解CDMA? 推荐参考大神文章 https://blog.csdn.net/dog250/article/details/6420427 (码分多址(CDMA)的本质-正交之美) 首先我们先看& ...
- 面试官问:HashMap在并发情况下为什么造成死循环?一脸懵
这个问题是在面试时常问的几个问题,一般在问这个问题之前会问Hashmap和HashTable的区别?面试者一般会回答:hashtable是线程安全的,hashmap是线程不安全的. 那么面试官就会紧接 ...
- Vue 父子组件通信入门
父组件向子组件传值 1.组件实例定义方式,注意:子组件一定要使用props属性来定义父组件传递过来的数据 <script type="text/javascript"> ...
- centos7下SVN服务器搭建
1,安装 yum install subversion 2,输入rpm -ql subversion查看安装位置 3,创建svn版本库目录 mkdir -p /var/svn/svnrepos 4,创 ...
- Raft协议备注
Raft协议 Raft协议基于日志实现了一致性 实现备份的是机制:复制状态机Replicated State Machine,如果两个相同的.确定性的状态机从同一状态开始,以相同顺序输入相同的日志,则 ...
- RestfulApi 学习笔记——简单介绍(一)
前言 什么是restapi? 直接看:http://www.ruanyifeng.com/blog/2014/05/restful_api.html 阮一峰的blog,即可明白,下面是一些例子,增强理 ...
- Java学习的第六天
1.今天学习了各种运算符, 还有选择结构,循环结构 2.今天学习没有遇到困难. 3.明天学习数组和第三章的开头一部分.
- linux上性能调优常用命令及简介
1.综合命令:nmon.top:topas(aix) d :磁盘相关 c:cpu相关 m:内存相关 2.磁盘 2.1 测试顺序写性能dd if=/dev/zero of=/cdr/test.data ...
- 辨析:IIR(Infinite Impulse Response)与FIR(Finite Impulse Response)
IIR和FIR系统描述的是系统的抽样响应特性,其中$ x(n)=\delta(n) $ 举例:一个平均器的系统是FIR系统,因为它的抽样响应仅在变量n取某3个值的时候有值,是有限长的:一阶自回归模型由 ...