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 -> ...
随机推荐
- centos8上redis5在生产环境的配置
一,创建redis的数据和日志目录: [root@yjweb data]# mkdir /data/redis6379 [root@yjweb data]# mkdir /data/redis6379 ...
- 解决Mac下AndroidStudio内容时卡顿
Mac下AndroidStudio在写代码的时候出现卡顿,小圆圈会一直转,此时我们应该检查下AndroidStudio的内存使用情况了. 1.点击左上角 AndroidStudio -- Prefer ...
- Mybatis项目搭建
MyBatis是一个优秀的持久层框架.原生的jdbc操作存在大量的重复性代码(如注册驱动,创建连接,创建statement,结果集检测等).框架的作用就是把这些繁琐的代码封装. MyBatis通过XM ...
- 博客主题——cnbook
主题预览 主题下载 gshang.cnbook.rar version:2020-05-29 gshang.cnbook@2.0.rar version:2020-08-25 .source-down ...
- SQL Server 列存储索引 第三篇:维护
列存储索引分为两种类型:聚集的列存储索引和非聚集的列存储索引,在一个表上只能创建一个聚集索引,要么是聚集的列存储索引,要么是聚集的行存储索引,然而一个表上可以创建多个非聚集索引. 一,创建列存储索引 ...
- Linux exec族函数解析
背景 在提到 vfork 函数时,我们提到了这个概念.为了更好地学习与运用,我们对exec族函数进行展开. exec函数族 介绍 有时我们希望子进程去执行另外的程序,exec函数族就提供了一个在进程中 ...
- python数据类型之dict(字典)
dict字典 关注公众号"轻松学编程"了解更多. 1.概述 dict也是一种存储方式,类似于list和tuple,但是,字典采用键-值(key-value)的形式存储. 优点:具有 ...
- [Luogu P4147] 玉蟾宫 (网格DP)
题面 传送门:https://www.luogu.org/problemnew/show/P4147 Solution 裸的求极大子矩阵 感谢wzj dalao的教学 首先,有一个很显然但很重要的结论 ...
- Python3网络学习案例四:编写Web Proxy
代理服务器的定义和作用请走百度百科~ 1. Web Proxy的实现思路 这是基于上一篇"编写Web Server"写的,主要逻辑见下图: 我们要写的就是中间的Web Proxy部 ...
- P5958 【[POI2017]Sabotaż】
P5958 [[POI2017]Sabotaż] 题意描述 在一棵以1号节点为根节点的树上,有很多纯洁的白点, BUT,突然有一个黑点出现(可能在任意位置) 它要染黑尽可能多的节点,而在一棵子树中, ...