propertydescriptor(如何将list<map<string,object>>转化为map<string,map<string,object>>)
本文目录
如何将list
/** * 用于把List《Object》转换成Map《String,Object》形式,便于存入缓存 * @author zhang_bo * @param keyName 主键属性 * @param list 集合 * @return 返回对象 */ private 《T》 Map《String, T》 listToMap(String keyName, List《T》 list){ Map《String, T》 m = new HashMap《String, T》(); try { for (T t : list) { PropertyDescriptor pd = new PropertyDescriptor(keyName, t.getClass()); Method getMethod = pd.getReadMethod();// 获得get方法 Object o = getMethod.invoke(t);// 执行get方法返回一个Object m.put(o.toString(), t); } return m; } catch (Exception e) { logger.error("Convert List to Map failed"); e.printStackTrace(); } return null; }
java怎么实现导出excel
偶将最近写了两个导出excel的方法,第一个是面向过程的思路,就是在指定的单元格写入指定的值,如下: /** *负责数据导入到EXCEL * * @param realPath * EXCEL表格存放的绝对路径 * @param sheetname * * @param xLocation * EXCEL表格的行索引,从1开始* @param yLocation * EXCEL表格的列索引,从1开始 * @param value * 需要导入的数据 * */ public void modifyExcel(String realPath,String sheetname,int xLocaion,int yLocation,String value){ POIFSFileSystem fs=null; HSSFWorkbook wb=null; try { File file=new File(realPath); if(file.exists()){ fs = new POIFSFileSystem(new FileInputStream(realPath)); wb=new HSSFWorkbook(fs); HSSFSheet s=wb.getSheetAt(0); //函数处理时横纵坐标从索引0开始 HSSFRow row=s.getRow(xLocaion-1); HSSFCell cell=null; if(row!=null){ cell=row.getCell(yLocation-1); if(cell==null){ cell=row.createCell(yLocation-1); } }else{ row=s.createRow(xLocaion-1); cell=row.createCell(yLocation-1); } cell.setCellValue(value); }else{ wb=new HSSFWorkbook(); HSSFSheet s=wb.createSheet(); wb.setSheetName(0, sheetname); HSSFRow row=s.createRow(xLocaion-1); HSSFCell cell=row.createCell(yLocation-1); cell.setCellValue(value); } FileOutputStream fos=new FileOutputStream(realPath); wb.write(fos); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } 第二种就是运用了对象,以对象为单位写入数据,即一个对象的所有属性在一行列出,有多少个对象就有多少行,此方法比较适用于个人信息导出之类的应用,至于导出属性的顺序问题在导出对象的实体类内部改动下即可: /** *负责数据导入到EXCEL * * @param realPath * EXCEL表格存放的绝对路径 * @param sheetname * * @param users * 需要导出到excel表的对象数组 */ public void outputExcel(String realPath,String sheetname,UserModel users){ FileOutputStream fos; try { File file=new File(realPath); fos = new FileOutputStream(file, true); HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet s=wb.createSheet(); wb.setSheetName(0, sheetname); HSSFRow; HSSFCell; for (int i=0; i《users.length;i++) { // 相当于excel表格中的总行数 PropertyDescriptor); rows=s.createRow(i); for (int j=0; descriptors!=null&&j《descriptors.length;j++) { java.lang.reflect.Method readMethod = descriptors .getReadMethod(); cells.createCell(j); Object value=readMethod.invoke(users, null); cells.setCellValue(value.toString()); } } wb.write(fos); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } }
更多文章:
你相信勇士今年还有奇迹吗你支持谁?MU奇迹来了多倍经验获取途径有哪些详解
2023年12月29日 22:20
p2psearcher官网(p2p搜索器搜出单下载不了,看不了求给个能用的)
2024年7月19日 13:08
手机最火小游戏(手机有什么打僵尸的游戏 与僵尸搏斗的最火手游合集)
2024年6月25日 22:00
梅花视频不限次数看花钱么(我国60岁以上的老年人进景区半价70岁以上全免费吗)
2024年6月7日 08:46
电脑上怎么把pdf转成word(电脑pdf怎么转换成word)
2024年6月30日 01:35
连连看游戏在线玩(经常玩连连看,最近听说有一些连连看还很有难度咧,有个叫宠物连连看的,哪个朋友提供下网址哈)
2024年6月28日 01:25
迅捷pdf编辑器下载(迅捷pdf编辑器怎样下载才不会下载到盗版软件)
2024年6月30日 08:17