简单的poi导出

@Override
    public void exportXlsNotBill(HttpServletResponse response, TSBaseUser user) throws UnsupportedEncodingException {
        // 第一步,创建一个webbook,对应一个Excel文件
        HSSFWorkbook wb = new HSSFWorkbook();
        // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
        HSSFSheet sheet = wb.createSheet("无审批单特殊物品信息");
        sheet.setDefaultRowHeightInPoints(20);
        sheet.setDefaultColumnWidth((short) 20);
        // 第三步,在sheet中添加表头第0行
        HSSFRow row = sheet.createRow((int) 0);
        // 创建一个居中格式
        HSSFCellStyle style = wb.createCellStyle();
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        // 第四步  设置值表头 设置表头
        HSSFCell cell = row.createCell((short) 0);
        cell.setCellValue("上报人姓名 ");
        cell.setCellStyle(style);
        cell = row.createCell((short) 1);
        cell.setCellValue("上报单位单位");
        cell.setCellStyle(style);
        cell = row.createCell((short) 2);
        cell.setCellValue("联系电话 ");
        cell.setCellStyle(style);
        cell = row.createCell((short) 3);
        cell.setCellValue("申请时间");
        cell.setCellStyle(style);
        cell = row.createCell((short) 4);
        cell.setCellValue("出入境方式 ");
        cell.setCellStyle(style);
        cell = row.createCell((short) 5);
        cell.setCellValue("物品类别 ");
        cell.setCellStyle(style);
        cell = row.createCell((short) 6);
        cell.setCellValue("产品名称");
        cell.setCellStyle(style);
        cell = row.createCell((short) 7);
        cell.setCellValue("数量 ");
        cell.setCellStyle(style);
        cell = row.createCell((short);
        cell.setCellValue("重量");
        cell.setCellStyle(style);
        cell = row.createCell((short) 9);
        cell.setCellValue("货值");
        cell.setCellStyle(style);
        cell = row.createCell((short) 10);
        cell.setCellValue("处理方式");
        cell.setCellStyle(style);
        cell = row.createCell((short) 11);
        cell.setCellValue("运输方式");
        cell.setCellStyle(style);
        cell = row.createCell((short) 12);
        cell.setCellValue("备注");
        cell.setCellStyle(style);
        //第五步  设置数据集
        StringBuffer hql = new StringBuffer();
        hql.append("from NotBillProductEntity where 1=1 ");
        if (ResourceUtil.getSessionUser().getManagerRole()== Manager_Role.SHENGJU_ADMIN) {
            hql.append(" and depart like '" + user.getDepartid().substring(0, 2) + "%'");
        } else if (ResourceUtil.getSessionUser().getManagerRole() == Manager_Role.FENZHIJU_ADMIN) {
            hql.append(" and depart='" + user.getDepartid() + "'");
        }

        List<NotBillProductEntity> list = findHql(hql.toString());
        for (int i = 0; i < list.size(); i++) {
            row = sheet.createRow(i + 1);
            NotBillProductEntity np = list.get(i);
            HSSFCell dataCell = row.createCell((short) 0);
            dataCell.setCellValue(np.getCreateUserName());
            dataCell = row.createCell((short) 1);
            dataCell.setCellValue(np.getCreateCorpId());
            dataCell = row.createCell((short) 2);
            dataCell.setCellValue(np.getPhone());
            dataCell = row.createCell((short) 3);
            dataCell.setCellValue(DateUtils.dateToStr(np.getCreateDate(),DateUtils.YYYY_MM_DD));
            dataCell = row.createCell((short) 4);
            dataCell.setCellValue(np.getExitWay() == 1 ? "入境" : "出境");
            dataCell = row.createCell((short) 5);
            ProductCategoryEntity pro = getEntity(ProductCategoryEntity.class, np.getPcategory());
            dataCell.setCellValue(pro.getName());  //特殊物品类别
            dataCell = row.createCell((short) 6);
            dataCell.setCellValue(np.getProductName());  //特殊物品类别
            dataCell = row.createCell((short) 7);
            dataCell.setCellValue(np.getGrossNum() + np.getGrossUnit());
            dataCell = row.createCell((short);
            dataCell.setCellValue(np.getWeightNum() + np.getWeightUnit());
            dataCell = row.createCell((short) 9);
            dataCell.setCellValue(np.getValueNum() + "美元USD");
            dataCell = row.createCell((short) 10);
            String clfs = "其他";
            if (np.getDisposeWay() == 1) {
                clfs = "截留";
            } else if (np.getDisposeWay() == 2) {
                clfs = "销毁";
            } else if (np.getDisposeWay() == 3) {
                clfs = "退运";
            }
            dataCell.setCellValue(clfs);
            dataCell = row.createCell((short) 11);
            String ysfs = "货运";
            if (np.getTransportWay() == 1) {
                clfs = "旅客携带";
            } else if (np.getTransportWay() == 2) {
                clfs = "邮件";
            } else if (np.getTransportWay() == 3) {
                clfs = "快件";
            }
            dataCell.setCellValue(ysfs);
            dataCell = row.createCell((short) 12);
            dataCell.setCellValue(np.getRemark());
        }
        // 第六步,将文件存到指定位置
        response.setHeader("Content-disposition", "attachment;filename=" + new String(("无审批的特殊物品.xls").getBytes("GBK"), "ISO8859-1"));
        try {
            wb.write(response.getOutputStream());
            response.getOutputStream().close();
        } catch (Exception e) {
            logger.error("exportXlsNotBill(HttpServletResponse, TSBaseUser)", e); //$NON-NLS-1$
        }
    }

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
JEECG-P3微服务框架         Jeecg-P3是一款轻量的 Java 微服务框架,类似spring-boot,采用Springmvc+Velicity实现,插件开发与容器技术最佳实现,目前已开发“在线聊天”“我的邮箱”“ 微信 企业号”“网站CMS”等插件,可单独运行,也可轻松无缝集成jeecg平台。         特点: 提供强大代码生成器,提高开发效率,插件开发模式、松耦合、可插拔、支持独立部署,也可以无缝集成Jeecg平台中 版本升级日志 支持minidao拦截器,添加自动注入创建时

JavaWEB中读取配置信息 - 2016-09-13 17:09:03

第一种方法是使用java.io和java.util包,缺点是路径的概念要清晰, 例子:   Properties prop = new Properties(); InputStream in = getClass().getResourceAsStream("/common.properties"); try { prop.load(in); pool = new JedisPool(config, prop.getProperty("pay.redis.url")); } catch (IOExcep

请教一个问题 - 2016-09-13 17:09:03

请问谁有java persistence api的中文版,分享一下,英文实在看不懂,例如下面的pdf,如果谁有请打救一下,谢谢
//0代表前面的补充//8代表长度为8//d代表参数类型为正整数int val=12;System.out.println(String.format("%08d", val)); 打印结果: 00000012 System.out.println(String.format("你是谁?%2$s,他是谁%1$s", "wj","jw")); 你是谁?jw,他是谁wj
Java 抽象类和接口 一、抽象类 :   1) 由 abstract 修饰   2) 包含抽象方法的类必须是抽象类     不包含抽象方法的类也可以声明为抽象类 ---- 我乐意   3) 抽象类不能被实例化   4) 抽象类是需要被继承的,子类 :     4.1) 重写所有抽象方法 ---- 常用     4.2) 也声明为抽象类 ------ 不常用   5) 抽象类的意义 :     5.1) 包含公共的属性和行为,被子类所共享 -- 代码重用     5.2) 为所有子类提供一种公共的类型 -

Java 获取当前JVM进程ID - 2016-09-13 15:09:48

Java 获取当前JVM进程ID   public static final int jvmPid() {try {RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();Field jvm = runtime.getClass().getDeclaredField("jvm");jvm.setAccessible(true);VMManagement mgmt = (VMManagement) jvm.get(runtime);Metho

java面试必备之多线程 - 2016-09-13 15:09:44

     Java 多线程 一、 线程     线程:可以并发执行多个任务。 二、 线程创建方式     线程有两种创建方式。 方式一 : 直接继承 Thread 并重写 run 方法。需要注意,启动线程要调用 start 方法, start 方法调用完毕后,线程纳入到线程调度中,线程调度会分配 CPU 时间片来运行该线程,当线程运行时会自动调用 run 方法。 第一种创建线程方式有两个不足 :  1: 由于要求继承 Thread 类,那么在将来项目中,就有可能出现继承冲突。  2: 由于继承了 Thre
JeeWx_2.4.2 版本发布,免费开源 微信 管家系统   1. JEEWX系统介绍        Jeewx是一款开源、免费的微信管家系统,采用 Java 语言实现,支持微信公众号、微信企业号,Jeewx实现了微信平台管理的基础功能,便于用户二次开发。        后续升级亮点: 即将推出“支付服务窗”插件,后续会扩展支持“微博”, “百度直达号”, “QQ公众号”等。 2. 版本升级亮点    推出扁平化UI界面,支持首页风格切换 (点击右上角-控制面板 -首页风格) 3. JEEWX系统功能

java面试必备之String类 - 2016-09-13 15:09:37

       String 类 一、 基础知识    在 Java 中将字符串作为对象来处理,有两种创建形式: String str= ” abc ” ;String str=new String( “ abc ” ). String 是不可变对象。 二、 常用 API int indexOf(int ch): 用来检查给定的一个字符在当前字符串中第一次出现的下标位置。 String substring(int begin,int end): 用来截取当前字符串的部分内容以获取这个子字符串。 String

Java之泛型(Generic Type) - 2016-09-13 15:09:37

Java之泛型(Generic Type) 一、背景知识     在面向对象编程中有四个概念:抽象、封装、继承、多态         这四种编程思想在Java中的体现:         1、抽象:接口(Interface)、抽象类     2、封装:用权限关键字控制自身属性对外的访问/继承权限:public、protected、default、private     3、继承:一个类可以继承另一个类的属性或方法。     4、多态:有继承必然有多态。允许子类重写 (overwrite) 父类中的方法。