@RequestMapping("/dealer/chargebook/exportv.htm")
    public void getChargeBookList(int epmkey,String bdakey,int year,int month,HttpServletRequest request, HttpServletResponse response) {
        List<ChargeBook> list = chargeBookService.getEpmChargeBookList(epmkey,year,month,bdakey);
            String filename = year+"年"+month+"月份"+list.get(0).getCbkBdaCaption()+"物业缴费统计.xls";
            filename = encodeFilename(filename, request);//设置下载时客户端Excel的名称
            response.setHeader("Content-disposition", "attachment;filename="+filename);
            response.setContentType("application/vnd.ms-excel");
            String config = "/WEB-INF/chargebook/balance.xls";
            ExcelUtils.addValue("month", month);
            ExcelUtils.addValue("year", year);
            ExcelUtils.addValue("bdaCaption", list.get(0).getCbkBdaCaption());
            for (ChargeBook chargeBook : list) {
                chargeBook.setCbkRemark(rdStatus(chargeBook.getCbkStatus()));
            }
            ExcelUtils.addValue("list", list);
            ExcelUtils.addValue("service",rdStatus(0) );
            try {
                ExcelUtils.export(request.getSession().getServletContext(),config,response.getOutputStream());
            } catch (ExcelException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
    }
    
     public static String encodeFilename(String filename, HttpServletRequest request) {    
            /**  
             * 获取客户端浏览器和操作系统信息  
             * 在IE浏览器中得到的是:User-Agent=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; Alexa Toolbar)  
             * 在Firefox中得到的是:User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.7.10) Gecko/20050717 Firefox/1.0.6  
             */    
            String agent = request.getHeader("USER-AGENT");    
            try {    
              if ((agent != null) && (-1 != agent.indexOf("MSIE"))) {    
                String newFileName = URLEncoder.encode(filename, "UTF-8");    
                newFileName = StringUtils.replace(newFileName, "+", "%20");    
                if (newFileName.length() > 150) {    
                  newFileName = new String(filename.getBytes("GB2312"), "ISO8859-1");    
                  newFileName = StringUtils.replace(newFileName, " ", "%20");    
                }    
                return newFileName;    
              }    
              if ((agent != null) && (-1 != agent.indexOf("Mozilla")))    
                return MimeUtility.encodeText(filename, "UTF-8", "B");    
            
              return filename;    
            } catch (Exception ex) {    
              return filename;    
            }    
         }

Excel 取值 : #foreach cb in ${list}  #end

ExcelUtils 导表实例的更多相关文章

  1. (原创)hibernate 一对多建表实例详解 附上各个注释的含义

    这个是hibernate的一对多建表实例:一的一端是部门(Department),对的一端是员工(Employee),下面贴上成员源代码:其中@mappedBy是加在@OneToMany一端,并且它的 ...

  2. .net解析csv(C#导表工具)

    前言 解析Excel有知名的NPOI库,(Java语言是POI),但是NPOI是不支持解析csv的. csv本质上也是文本文件,可以进行差异对比,更利于解决冲突. 本文对解析csv的几个.net的开源 ...

  3. sharding-jdbc之——分库分表实例

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/79368021 一.概述 之前,我们介绍了利用Mycat进行分库分表操作,Mycat ...

  4. ORACLE数据库导表

    今天在公司的server上面装一个系统,在数据库导表的时候一直导不进去,原先是10g的.dmp文件,导入11g.怀疑版本号不兼容,后来把.dmp表打开,把里面的版本号号改为11g,发现导入还是不行.i ...

  5. mysqldump导表

    mysqldump全量导表 mysqldump -hlocalhost -uroot -P3306 -p --skip-add-locks --skip-triggers test > test ...

  6. Postgresql的导表

    背景 前面已经介绍了常用的备份与恢复了,接下来介绍一下导表. 正文 很多情况,会有把数据导出的需求,轻重缓急总会有特别紧急的情况,但是又不是专业干db的人,还是记录下来,以防不时之需. 针对于导表,个 ...

  7. python-mysql数据库导表存excel后发邮件(实例2)

    需求:用户输入mysql数据库中某表名,将此表导入到excel中,将导出文件以邮件形式发出 设计思路: 1连接数据库 2读取表头(cur.description--获取表头,函数返回二维元组,采用列表 ...

  8. Qt StyleSheet样式表实例(转)

    QT论坛看到的,收藏一下! 在涉及到Qt 美工的时候首先需要掌握CSS 级联样式表. 下面将通过几个例子来介绍一下怎样使用Qt中的部件类型设计.自定义的前台背景与后台背景的颜色: 如果需要一个文本编辑 ...

  9. Django开发密码管理表实例【附源码】

    文章及代码比较基础,适合初.中级人员,高手略过 阅读此篇文章你可以: 获取一个Django实现增删改查的案例源码 了解数据加密的使用场景和方法以及如何在Python3中使用 背景介绍 DBA需要维护一 ...

随机推荐

  1. [itint5]最短路径遍历点

    http://www.itint5.com/oj/#50 此题有点难,参考了这篇文章,是个两条路的DP: http://blog.csdn.net/a83610312/article/details/ ...

  2. eclipse配置jdk问题

    1.JDK安装成功,eclipse也安装成功,这时候实际上是可以不配置JDK,因为系统已经默认给你配置好了,

  3. Linux开机启动流程

    开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程:       1)加载BIOS       2)读取MBR       3)Boot Loader       4)加载内核    ...

  4. iOS开发--网络下载

    这里使用的是NSURLConnection的代理请求下载,并且是具有进度,UI能实时刷新,至于NSURLConnection如何请求.并且有几种请求方法请看NSURLConnection请求简介,在这 ...

  5. QTimer源码分析(以Windows下实现为例)

    QTimer源码分析(以Windows下实现为例) 分类: Qt2011-04-13 21:32 5026人阅读 评论(0) 收藏 举报 windowstimerqtoptimizationcallb ...

  6. PL/SQL-Thread creation error:存储空间不足,无法处理此命令

    PL/SQL中执行SQL语句,提示“Thread creation error:存储空间不足,无法处理此命令”.查找了解决方案,如下: 1. 单击开始,然后单击运行. 2. 键入 regedit,然后 ...

  7. 在Android里完美实现基站和WIFI定位

    来自:http://www.cnblogs.com/coffeegg/archive/2011/10/01/2197129.html 众所周知的,在OPhone和大部分国产的Android定制机里不支 ...

  8. math模块及使用方式

    在数学之中,除了加减乘除四则运算之外——这是小学数学——还有其它更多的运算,比如乘方.开方.对数运算等等,要实现这些运算,需要用到 Python 中的一个模块:Math 模块(module)是 Pyt ...

  9. C#6.0 VS2015

    https://msdn.microsoft.com/en-us/library/hh156499(v=vs.140).aspx This page lists key feature names f ...

  10. Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.解决办法

    刚刚更新AS到2.0版本,然后导入Api Demos的时候出现了这个错误. 解决办法:在AS的菜单栏,Tools->Android ->Enable ADB integration 勾选就 ...