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(+) ");
原文:http://www.cnblogs.com/songpinyue/p/4974289.html