首页 > 数据库技术 > 详细

从数据库导出excel表(查询数据的集合为map)

时间:2015-11-18 14:21:35      阅读:314      评论:0      收藏:0      [点我收藏+]
FileOutputStream stream = null;
        try {
            //定义EXCEL第一行标题
            String title = "资产管理";
            
            //创建英文和中文键值对集合
            Map<String, String> ecMap = new HashMap<String, String>();
            //创建英文键值对集合
            List<String> eList = new  ArrayList();
            //遍历通过sql查询到的值进行遍历,这个值是字段名字和注释
            for (Map map : list) {
                //取英文
                eList.add(map.get("COLUMN_NAME").toString());
                //取键:英文 和 值:中文注释字段
                ecMap.put(map.get("COLUMN_NAME").toString(), map.get("COMMENTS").toString());
            }
            //创建workbook这个操作excel的
            HSSFWorkbook workbook = new HSSFWorkbook();
            //通过workbook创建sheet,sheet就是excel的当前页(并且放入标题)
            HSSFSheet sheet = workbook.createSheet(title);
            //通过workbook规范字体
            HSSFFont ztFont = workbook.createFont();
            ztFont.setBoldweight(ztFont.BOLDWEIGHT_BOLD);
            HSSFCellStyle cellStyle =workbook.createCellStyle();
            cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
            //最后确定样式
            cellStyle.setFont(ztFont);
            
            //创建第一行表头,当然通过sheet创建了,因为sheet是第一页
            //里面的(0)代表的索引,第一页东西
            HSSFRow row = sheet.createRow(0);
            //取第一行的索引
            HSSFCell cell = row.createCell(0);
            //赋值
            cell.setCellValue(title);
            //改变样式
            cell.setCellStyle(cellStyle);
            
            //创建合并单元格
            Region region = new Region(0,new Short("0"),0,new Short(""+(ecMap.size()-1)));
            //调出sheet方法把已经合并好的单元格添加进去
            sheet.addMergedRegion(region);
            HSSFRow row2 = sheet.createRow(1);
            //创建第二行,把中文注释的字段放入第二行
            for (int i = 0; i < eList.size(); i++) {
                HSSFCell hssfCell = row2.createCell(i);
                //这段代码就是把值赋到里面,调用ecMap中文和英文键值,取elist的第几行就是ecMap第几个值
                hssfCell.setCellValue(ecMap.get(eList.get(i).toString()));
            }
            
            //创建数据流,把改好的数据放入excel中
            stream = new FileOutputStream("D:\\资产管理模版.xls");
            //使用workbook写入
            workbook.write(stream);
        }  catch (Exception e) {
            e.printStackTrace();
        }finally{
            try {


 

stream.flush(); stream.close(); } catch (IOException e) { e.printStackTrace(); } } }
//查询的集合
List<Map> list = selectDataService.queryForList("select a.column_name,a.comments from user_col_comments a where a.table_name =‘T_ASSET‘ and a.comments is not null"); List<Map> dateList = selectDataService.queryForList (" select a.id \"id\",a.num \"num\",a.name \"name\",t.name \"typeid\",a.status \"status\" ,a.buydate \"buydate\",u.realname \"userid\",a.price \"price\",w.name \"factory\",a.content \"content\" from t_asset a ,t_assettype t ,t_factory w,t_user u where a.typeid = t.id(+) and a.factory = w.id(+) and a.userid = u.id(+) ");

 

从数据库导出excel表(查询数据的集合为map)

原文:http://www.cnblogs.com/songpinyue/p/4974289.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!