SpringMVC 下载XLS文档的设置

页面设置参考上文。SpringMVC 下载文本文档的设置

此文是关于xls文档下载的,这个文档使用Apache的POI生成,需要的jar包可以从下面地址下载:

http://pan.baidu.com/s/1i3IJttF

下面是controller代码,比上一篇文本的少很多:

    @RequestMapping("/downloadAnnotatorListXls")
    public ModelAndView downloadAnnotatorListXls(HttpServletRequest request,HttpServletResponse response){
        String fileName="annotatorList.xls";

        response.reset();// 不加这一句的话会出现下载错误
        response.setHeader("Content-disposition", "attachment;filename=" + fileName);   // 设定输出文件头
        response.setContentType("application/vnd.ms-excel");   // 定义输出类型 

        try {

            HSSFWorkbook xls=service.getAnnotatorListInXls();
            OutputStream ouputStream = response.getOutputStream();
            xls.write(ouputStream); 
            ouputStream.flush();
            ouputStream.close();   

        } catch (Exception e) {
            e.printStackTrace();
            logger.error(e);

            request.setAttribute("error", e.getClass());
            request.setAttribute("reason", e.getMessage());
            StackTraceElement[] arr=e.getStackTrace();
            request.setAttribute("stackTraceElements", arr);

            return new ModelAndView("pages/error/index.jsp");
        }

        return null;
    }

具体xls生成请参考:

public HSSFWorkbook getAnnotatorListInXls() throws Exception{
        StringBuilder sb=new StringBuilder();
        sb.append("    select");
        sb.append("        t1.id,");
        sb.append("        t1.ownerId,");
        sb.append("        t1.ownerName,");
        sb.append("        t1.annotatorId,");
        sb.append("        t1.name,");
        sb.append("        t1.fullName,");
        sb.append("        t1.language,");
        sb.append("        format(t1.planHour,2) as planHour");
        sb.append("    from");
        sb.append("        ownership t1 ");
        sb.append("    order by");
        sb.append("        id");
        String sql=sb.toString();

        List<?> ls=this.getJdbcTemplate().query(sql, new NameValueRowMapper());

        HSSFWorkbook wb = new HSSFWorkbook();
        HSSFSheet sheet = wb.createSheet("sheet1");

        // 表头颜色
        HSSFCellStyle blueStyle = wb.createCellStyle();
        blueStyle.setBorderTop(HSSFCellStyle.BORDER_THICK);
        blueStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
        blueStyle.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
        blueStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);

        // 表头部分"ID,OwnerId,OwnerName,AnnotatorId,Name,FullName,Language,PlanHour\r\n"
        HSSFRow row = sheet.createRow(0);//建立新行

        HSSFCell cell =row.createCell((short)0);
        cell.setCellValue("ID");
        cell.setCellStyle(blueStyle);

        cell =row.createCell((short)1);
        cell.setCellValue("OwnerId");
        cell.setCellStyle(blueStyle);

        cell =row.createCell((short)2);
        cell.setCellValue("OwnerName");
        cell.setCellStyle(blueStyle);

        cell =row.createCell((short)3);
        cell.setCellValue("AnnotatorId");
        cell.setCellStyle(blueStyle);

        cell =row.createCell((short)4);
        cell.setCellValue("Name");
        cell.setCellStyle(blueStyle);

        cell =row.createCell((short)5);
        cell.setCellValue("FullName");
        cell.setCellStyle(blueStyle);

        cell =row.createCell((short)6);
        cell.setCellValue("Language");
        cell.setCellStyle(blueStyle);

        cell =row.createCell((short)7);
        cell.setCellValue("PlanHour");
        cell.setCellStyle(blueStyle);

        short rowNum=1;
        short columnNum=0;
        for(Object obj:ls){
            row = sheet.createRow(rowNum);//建立新行
            columnNum=0;

            List<NameValue> lsTemp=(List<NameValue>)obj;

            for(NameValue nv:lsTemp){
                cell =row.createCell(columnNum);
                cell.setCellValue(nv.getValue());
                columnNum++;
            }

            rowNum++;
        }

        return wb;
    }
时间: 2024-08-03 10:31:42

SpringMVC 下载XLS文档的设置的相关文章

IIS下不能下载文件的docx文档,XLSX文档的设置方法(转)

IIS下不能下载文件的docx文档,XLSX文档的设置方法 Office 2007的的界面风格默认格式中都是.DOCX,XLSX,PPTX等等后缀,连结中包含此类文件时,界面风格默认什么打不开的其实只要在IIS中的MIME的类型中添加对此格式的支持就可以了下面提供两种方法扩展功能,推荐使用第二种. 方法一:打开网站属性,的HTTP头选项对话牌,添加的MIME类型 新建一种类型,填入需要的 .docx ,类型为 application/vnd.openxmlformats-officedocume

springmvc+mybatis+lucene4文档搜索系统(支持分页)

原文:springmvc+mybatis+lucene4文档搜索系统(支持分页) 源代码下载地址:http://www.zuidaima.com/share/1550463731436544.htm springmvc+mybatis+lucene4文档搜索系统(支持分页) 说明在readme.txt中 链接:http://pan.baidu.com/share/link?shareid=1973707360&uk=402880896 密码:01r6 

Swing表格数据转xls文档

花了一下午的时间终于实现了Swing表格数据转xls文档与读取xls文档数据. 接下来上代码 1.弹出文件,目录选择框 exportBtn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String name = "数据.xls"; String defaultPath = "D://temp"; //构造文件保存对话框

手动下载 Xcode 文档

下载Xcode文档的方法有两个: 1. 自动下载:到在Xcode的Preserences中Downloads页面的Documentation,点击对应文档的下载. 不建议勾选下面的Check for and install updates automatically,因为下载过程中可能无法正常使用Documents. 2. 手动下载:到这个页面:https://developer.apple.com/library/downloads/docset-index.dvtdownloadablein

ASP.NET MVC下载excel文档

问题来自论坛: 很早以前,学习做asp.net练习时,就是分享过<ASP.NET MVC应用程序实现下载功能>http://www.cnblogs.com/insus/p/3615714.html 比如你的excel文档,是存放于project的DownloadFiles目录之下: 创建一个控制器,如今个月为八月,就创建一个AugControllers: 上面有句“application/vnd.ms-excel” Office MIME type: 参考<Microsoft Offic

我的文档 属性设置里找不到位置选项,以及文件夹迁移解决方式

我的文档 属性设置里找不到位置选项,以及文件夹迁移解决方式 转载请注明出处.http://blog.csdn.net/aaa123524457/article/details/47056951 欢迎关注http://blog.csdn.net/aaa123524457 刚装好的系统.<我的文档>默认是在C盘里的. 非常多人都会把它移到非系统盘,以避免消耗过多的系统盘资源. 直接说我遇到的问题: 刚装的windows server2008 r2系统,事实上和win7是一样的设置.我把C盘以下的&

百度文库免费下载网站(只能下载点券文档)

百度文库免费下载网站:https://baidu3888.com,不要把https去掉哈 笔者最近发现了一个不错的网站,可以免费下载百度文库中需要点券的文档(不论文档需要的点券是多少,每次下载只需要支付5毛钱,笔者觉得还是很划算的). 目前网上有一些号称能下载百度文库的软件大都是假的,或者是OCR抓取的,不是百度文库原有格式: 某电商网站上有代下载服务,但是价格都比较高,而且个别店铺兜售账户是骗子(账户有下载次数限制,有使用时间限制等): 温馨提示:凡是号称能下载付费文档的,大都价格高昂,基本都

用PHP实现浏览器点击下载TXT文档的方法详解

[[注:其他文件想设置成下载文件,和下面介绍的方法一致]] 由于现在的浏览器已经可以识别txt文档格式,如果只给txt文档做一个文字链接的话,点击后只是打开一个新窗口显示txt文件的内容,并不能实现点击下载的目的.当然这个问题的解决办法也可以是将txt文件改名为浏览器不认识的文件(比如rar),这样的话,由于浏览器不能识别rar类型的文件,只能让用户下载了.还有一种办法,就是利用代码通过header设置文档的格式来实现点击下载的目的. PHP代码如下:======================

通过webService下载sharepoint文档库文件

第一.基本原理: 1.通过对象模型得到SPItem.File得到文档库文件 2.通过WebService将item.File.OpenBinary()返回 3.将文件保存到服务器 4.从服务器下载到本地 第二.具体代码: WebService [WebMethod] public byte[] GetAttachmentFileflow(string webPath,string list,int fileId) { try { using (SPSite site = new SPSite(w