从webRoot中下载Excel

@RequestMapping("downLoad")
    public void downLoad(Offsupervise off1,HttpServletRequest request,HttpServletResponse response,HttpSession session) throws UnsupportedEncodingException{

        User user=(User) session.getAttribute(Const.SESSION_USER);
        String excePath1=servletContext.getRealPath("excel");
        System.out.println("---excePath1:"+excePath1);
        String excePath=excePath1.replaceAll("\\\\", "/");
        System.out.println("---excePath:"+excePath);
        String servletPath=request.getSession().getServletContext().getRealPath("/");
        System.out.println("servletPath:"+servletPath);
        System.out.println(excePath+"/030013101154183F20143Z000.xls");
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");

        FileOutputStream out;
        Offsupervise off=null;
        if(null!=off1){
            System.out.println(1);
            off=offsuperviseService.getOffsuperviseByOrangId(off1);
            off.setOrgan_id(off1.getOrgan_id());
            off.setYear(off1.getYear());
            off.setQuarter(off1.getQuarter());
        }

        response.setContentType("APPLICATION/OCTET-STREAM");
        response.setHeader("Content-Disposition", "attachment;filename=Excel.zip");
        response.setHeader("Cache-Control", "max-age=0");
            try {
                ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());
                POIFSFileSystem fs1 = new POIFSFileSystem(new FileInputStream(new File(excePath+"/030013101154183F20143Z000.xls")));
                POIFSFileSystem fs2=new POIFSFileSystem(new FileInputStream(new File(excePath+"/030013101154183G20143Z000.xls")));
                POIFSFileSystem fs3=new POIFSFileSystem(new FileInputStream(new File(excePath+"/030013101154183H20143Z000.xls")));
                POIFSFileSystem fs4=new POIFSFileSystem(new FileInputStream(new File(excePath+"/030013101154183I20143Z000.xls")));
                POIFSFileSystem fs5=new POIFSFileSystem(new FileInputStream(new File(excePath+"/030013101154183J20143Z000.xls")));

                String name1="030013101154183F"+off.getYear()+"3Z000.xls";
                String name2="030013101154183G"+off.getYear()+"3Z000.xls";
                String name3="030013101154183H"+off.getYear()+"3Z000.xls";
                String name4="030013101154183I"+off.getYear()+"3Z000.xls";
                String name5="030013101154183J"+off.getYear()+"3Z000.xls";

            /*-----------------------操作识别客户表----------------------------------**/    

                HSSFWorkbook wb1=new HSSFWorkbook(fs1);
                HSSFSheet sheet1=wb1.getSheetAt(0);

                HSSFCell c11=sheet1.getRow(1).getCell((short) 5);
                c11.setCellValue(off.getYear());

                HSSFCell c12=sheet1.getRow(1).getCell((short) 7);
                c12.setCellValue(off.getQuarter());

                HSSFCell c13=sheet1.getRow(2).getCell((short) 7);
                if(off.getData30().equals("0")){
                    c13.setCellValue("是");
                }else {
                    c13.setCellValue("否");
                }

                //制表人
                sheet1.getRow(3).getCell((short) 1).setCellValue(user.getName());
                //联系电话
                sheet1.getRow(3).getCell((short) 3).setCellValue(user.getTelphone());
                //对公总数
                sheet1.getRow(6).getCell((short) 3).setCellValue(off.getData1());
                //对公通过第三方识别数
                sheet1.getRow(8).getCell((short) 3).setCellValue(off.getData2());
                //对公与离岸中心有关的
                sheet1.getRow(9).getCell((short) 3).setCellValue(off.getData21());
                //对公受益人数
                sheet1.getRow(10).getCell((short) 3).setCellValue(off.getData22());

                HSSFCell c14=sheet1.getRow(18).getCell((short) 3);
                c14.setCellValue(off.getData3());

                HSSFCell c15=sheet1.getRow(21).getCell((short) 3);
                c15.setCellValue(off.getData18());
                //其中他人代理的
                sheet1.getRow(22).getCell((short)3).setCellValue(off.getData24());

                HSSFCell c16=sheet1.getRow(23).getCell((short) 3);
                c16.setCellValue(off.getData17());

                //其中他人代理的
                sheet1.getRow(24).getCell((short)3).setCellValue(off.getData25());

                HSSFCell c17=sheet1.getRow(32).getCell((short) 3);
                c17.setCellValue(off.getData30());

                zos.putNextEntry(new ZipEntry(name1));
//                zos.write(wb1.getBytes());
                wb1.write(zos);

//                out=new FileOutputStream("E://"+name1);
//                wb1.write(out);
//                out.close();
                /*----------------------操作重新识别客户-----------------------------------**/
                HSSFWorkbook wb2=new HSSFWorkbook(fs2);
                HSSFSheet sheet2=wb2.getSheetAt(0);

                HSSFCell c21=sheet2.getRow(1).getCell((short) 5);
                c21.setCellValue(off.getYear());

                HSSFCell c22=sheet2.getRow(1).getCell((short) 7);
                c22.setCellValue(off.getQuarter());

                HSSFCell c23=sheet2.getRow(2).getCell((short) 7);
                if(off.getData31().equals("0")&&off.getData33().equals("0")){
                    c23.setCellValue("是");
                }else {
                    c23.setCellValue("否");
                }
                //制表人
                sheet2.getRow(3).getCell((short) 1).setCellValue(user.getName());
                //联系电话
                sheet2.getRow(3).getCell((short) 3).setCellValue(user.getTelphone());

                sheet2.getRow(7).getCell((short) 1).setCellValue(off.getData4());
                sheet2.getRow(7).getCell((short) 2).setCellValue(off.getData5());

                HSSFCell c24=sheet2.getRow(7).getCell((short) 3);
                c24.setCellValue(off.getData6());

                sheet2.getRow(7).getCell((short) 4).setCellValue(off.getData26());
                sheet2.getRow(7).getCell((short) 5).setCellValue(off.getData27());

                //其中查实
                sheet2.getRow(8).getCell((short) 1).setCellValue(off.getData4());
                sheet2.getRow(8).getCell((short) 2).setCellValue(off.getData5());
                sheet2.getRow(8).getCell((short) 3).setCellType(1);
                sheet2.getRow(8).getCell((short) 3).setCellValue(off.getData6());
                sheet2.getRow(8).getCell((short) 4).setCellValue(off.getData26());
                sheet2.getRow(8).getCell((short) 5).setCellValue(off.getData27());

                sheet2.getRow(13).getCell((short) 1).setCellValue(off.getData7());
                sheet2.getRow(13).getCell((short) 2).setCellValue(off.getData8());
                HSSFCell c25=sheet2.getRow(13).getCell((short) 3);
                c25.setCellValue(off.getData9());
                sheet2.getRow(13).getCell((short) 4).setCellValue(off.getData28());
                sheet2.getRow(13).getCell((short) 5).setCellValue(off.getData29());

                //其中查实
                sheet2.getRow(14).getCell((short) 1).setCellValue(off.getData7());
                sheet2.getRow(14).getCell((short) 2).setCellValue(off.getData8());
                sheet2.getRow(14).getCell((short) 3).setCellType(1);
                sheet2.getRow(14).getCell((short) 3).setCellValue(off.getData9());
                sheet2.getRow(14).getCell((short) 4).setCellValue(off.getData28());
                sheet2.getRow(14).getCell((short) 5).setCellValue(off.getData29());

                sheet2.getRow(17).getCell((short) 1).setCellValue(off.getData31());
                sheet2.getRow(17).getCell((short) 2).setCellType(1);
                sheet2.getRow(17).getCell((short) 2).setCellValue(off.getData32());
                HSSFCell c26=sheet2.getRow(17).getCell((short) 3);
                System.out.println("type:"+c26.getCellType());
                c26.setCellType(1);
                c26.setCellValue(off.getData33());
                sheet2.getRow(17).getCell((short) 4).setCellType(1);
                sheet2.getRow(17).getCell((short) 4).setCellValue(off.getData34());
                sheet2.getRow(17).getCell((short) 5).setCellType(1);
                sheet2.getRow(17).getCell((short) 5).setCellValue(off.getData35());

                //其中查实
                sheet2.getRow(18).getCell((short) 1).setCellValue(off.getData31());
                sheet2.getRow(18).getCell((short) 2).setCellType(1);
                sheet2.getRow(18).getCell((short) 2).setCellValue(off.getData32());
                sheet2.getRow(18).getCell((short) 3).setCellType(1);
                sheet2.getRow(18).getCell((short) 3).setCellValue(off.getData33());
                sheet2.getRow(18).getCell((short) 4).setCellType(1);
                sheet2.getRow(18).getCell((short) 4).setCellValue(off.getData34());
                sheet2.getRow(18).getCell((short) 5).setCellType(1);
                sheet2.getRow(18).getCell((short) 5).setCellValue(off.getData35());

                zos.putNextEntry(new ZipEntry(name2));
//                zos.write(wb2.getBytes());
                wb2.write(zos);
//                out=new FileOutputStream("E://"+name2);

//                wb2.write(out);
//                out.close();
                /*----------------------操作涉及可疑交易识别情况-----------------------------------**/
                HSSFWorkbook wb3=new HSSFWorkbook(fs3);
                HSSFSheet sheet3=wb3.getSheetAt(0);

                HSSFCell c31=sheet3.getRow(1).getCell((short) 5);
                c31.setCellValue(off.getYear());

                HSSFCell c32=sheet3.getRow(1).getCell((short) 7);
                c32.setCellValue(off.getQuarter());

                HSSFCell c33=sheet3.getRow(2).getCell((short) 7);
                c33.setCellValue("是");
//                if(off.getData10().equals("0")&&off.getData12().equals("0")){
//                    c33.setCellValue("是");
//                }else {
//                    c33.setCellValue("否");
//                }
                //制表人
                sheet3.getRow(3).getCell((short) 1).setCellValue(user.getName());
                //联系电话
                sheet3.getRow(3).getCell((short) 3).setCellValue(user.getTelphone());
//                HSSFCell c34=sheet3.getRow(7).getCell((short) 0);
//                c34.setCellValue(off.getData10());
////
//                HSSFCell c35=sheet3.getRow(7).getCell((short) 3);
//                c35.setCellValue(off.getData12());

                zos.putNextEntry(new ZipEntry(name3));
//                zos.write(wb3.getBytes());
                wb3.write(zos);

//                out=new FileOutputStream("E://"+name3);
//                wb3.write(out);
//                out.close();
                /*----------------------金融机构可疑交易报告情况统计表-----------------------------------**/
                HSSFWorkbook wb4=new HSSFWorkbook(fs4);
                HSSFSheet sheet4=wb4.getSheetAt(0);

                HSSFCell c41=sheet4.getRow(1).getCell((short) 5);
                c41.setCellValue(off.getYear());

                HSSFCell c42=sheet4.getRow(1).getCell((short) 7);
                c42.setCellValue(off.getQuarter());

                HSSFCell c43=sheet4.getRow(2).getCell((short) 7);
                if(off.getData13().equals("0")&&off.getData14().equals("0")&&off.getData15().equals("0")&&off.getData16().equals("0")){
                    c43.setCellValue("是");
                }else {
                    c43.setCellValue("否");
                }
                //制表人
                sheet4.getRow(3).getCell((short) 1).setCellValue(user.getName());
                //联系电话
                sheet4.getRow(3).getCell((short) 3).setCellValue(user.getTelphone());

//                HSSFCell c44=sheet4.getRow(5).getCell((short) 2);
//                c44.setCellValue(off.getData19());
////
//                HSSFCell c45=sheet4.getRow(5).getCell((short) 4);
//                c45.setCellValue(off.getData20());
//
                sheet4.getRow(10).getCell((short) 1).setCellValue(off.getData13());
                sheet4.getRow(10).getCell((short) 2).setCellValue(off.getData14());
                HSSFCell c46=sheet4.getRow(10).getCell((short) 3);
                c46.setCellValue(off.getData15());
//
                HSSFCell c47=sheet4.getRow(10).getCell((short) 4);
                c47.setCellValue(off.getData16());

                zos.putNextEntry(new ZipEntry(name4));
//                zos.write(wb4.getBytes());
                wb4.write(zos);
//                out=new FileOutputStream("E://"+name4);
//                wb4.write(out);
//                out.close();
                /*----------------------金融机构协助公安机关、其他机关打击洗钱活动情况-----------------------------------**/
                HSSFWorkbook wb5=new HSSFWorkbook(fs5);
                HSSFSheet sheet5=wb5.getSheetAt(0);

                HSSFCell c51=sheet5.getRow(1).getCell((short) 5);
                c51.setCellValue(off.getYear());

                HSSFCell c52=sheet5.getRow(1).getCell((short) 7);
                c52.setCellValue(off.getQuarter());

                //制表人
                sheet5.getRow(3).getCell((short) 1).setCellValue(user.getName());
                //联系电话
                sheet5.getRow(3).getCell((short) 3).setCellValue(user.getTelphone());
                zos.putNextEntry(new ZipEntry(name5));
//                zos.write(wb5.getBytes());
                wb5.write(zos);
//                out=new FileOutputStream("E://"+name5);
//                wb5.write(out);
//                out.close();
                zos.flush();
                zos.closeEntry();
                zos.close();

            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            request.setAttribute("data",off);

    }
时间: 2024-10-10 15:49:13

从webRoot中下载Excel的相关文章

在ASP.NET MVC中利用Aspose.cells 将查询出的数据导出为excel,并在浏览器中下载。

正题前的唠叨 本人是才出来工作不久的小白菜一颗,技术很一般,总是会有遇到一些很简单的问题却不知道怎么做,这些问题可能是之前解决过的.发现这个问题,想着提升一下自己的技术水平,将一些学的新的'好'东西记录下来,一是加深印象:二是以后可以作为参考:三是希望博友们可以提出不足和可以优化的地方,一起讨论. 这个是我去一家公司没多久,让我做的小功能,主要是导出excel并在浏览器下载下来. 但是会有不同的细微的需求差别. 第一次发博客,有描述不清楚的地方还请见谅,希望各位多多指点. 进入正题 简单的需求描

django 中下载文件与下载保存为excel

一.django 中下载文件 在实际的项目中很多时候需要用到下载功能,如导excel.pdf或者文件下载,当然你可以使用web服务自己搭建可以用于下载的资源服务器,如nginx,这里我们主要介绍django中的文件下载. 1.前端 实现方式:a标签+响应头信息(当然你可以选择form实现) <div class="col-md-4"><a href="{% url 'download' %}" rel="external nofollow

angularJS通过post方法下载excel文件

最近工作中遇到,要使用angularJS的post方法来下载excel的情况.网上找到一个帖子:http://stackoverflow.com/questions/22447952/angularjs-http-post-convert-binary-to-excel-file-and-download ,改动了里面部分代码搞定. 详细代码: $http.post($rootScope.restful_api.last_output_excel,body_data,{responseType:

在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题

原文:在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题 SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\KK.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 问题: 消息 15281,级别 16,状态 1,第 1 行 SQL Server 阻止了对组件 'Ad Hoc Di

MVC下载Excel文件:js接受乱码 简单处理办法

在做考试系统的时候,需要向题库里面批量导入试题.所以在导题之前需要下载一个Excel模版. 在MVC中下载模版,需要创建一个Excel模版,然后发到前台.即点击之后,弹出一个下载框,提示下载(保存位置). 现象:在MVC中,点击下载模版按钮,不提示下载. 原因:js接受 FileResult类型乱码. 如果是单纯的生成一个特定的Excel的文件,然后发到前台,即没有参数的下载.如果是这样的话直接让Controller创建,返回一个FileResult文件,前台就直接弹窗提示了. 但是下载导入模版

Java中读取Excel功能实现_POI

这里使用apache的poi进行读取excel 1,新建javaproject 项目:TestExcel 2,导入包 包下载地址:http://poi.apache.org/download.html#POI-3.10-FINAL 百度网盘下载:http://pan.baidu.com/s/1i365mQT 导入根目录下.lib.ooxml-lib下的所有jar 4,操作读取excel import java.io.File; import java.io.IOException; import

VSTO学习笔记(四)从SharePoint 2010中下载文件

原文:VSTO学习笔记(四)从SharePoint 2010中下载文件 上一次我们开发了一个简单的64位COM加载项,虽然功能很简单,但是包括了开发一个64位COM加载项的大部分过程.本次我们来给COM加载项添加一些功能:从SharePoint 2010的文档库中下载一个Excel文档到本地. 示例代码下载 本系列所有示例代码均在 Visual Studio 2010 Ultimate RC + Office 2010 Professional Plus Beta x64 上测试通过. 1.首先

j2e中操作EXCEL

在j2e中操作excel,无非2种情况,在这里我贴部分代码做个例子就OK,不管是导入和导出都是操作的都是流 1,导入,浏览器输入EXCEL到java后台解析 package action; import java.io.OutputStream; import java.sql.ResultSet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import

C#中对Excel进行操作

工作中要处理一批数据,主要是处理从别处导出来的Excel表格(大概有一千多行,三十多列),拿到表格对Excel表格进行分析,按照一定的规则进行拆分成为一万多行的数据:首先这个需求要用程序进行处理的背景是人工进行拆分已经耗费了一周人天的资源,所以要用C#对数据进行处理,来提高工作效率.开始的想法是把Excel中的数据导入到C#的一个容器中,对容器进行操作,但是拿到规则之后,发现规则太过于复杂,最后的方案变成把Excel数据导入到数据库中,然后,在数据库中进行数据处理,然后再把数据库中的数据导出到E