利用java反射处理excel数据导入示例
2015-01-09 18:50
459 查看
public class ExcelImportUtils{ private static final Logger log = Logger.getLogger(ExcelImportUtils.class); public static <T> Object handlerExcel(String pathname,String classpath, int row,int cloNum) throws ClassNotFoundException, InstantiationException,IllegalAccessException{ Class model = Class.forName(classpath); T mobject = (T)model.newInstance(); try{ Workbook book = Workbook.getWorkbook(new File(Global.UPLOAD_FOLDER + File.separator + pathname)); Sheet sheet = book.getSheet(0); int rows = sheet.getRows(); for (int j = row;j < rows;j++){ // Cell[] cell = sheet.getRow(j); // for (int i = 0;i < cell.length;j++){ // getCell(列,行) /** * @author wzx 利用java反射机制获取传入对象,以及所有属性,setter/getter方法 进行赋值 */ Field[] field = model.getDeclaredFields(); // 获取实体类的所有属性,返回Field数组 // Method[] method=model.getDeclaredMethods(); try{ String name = field[j - row].getName(); // 获取属性的名字 name = name.substring(0,1).toUpperCase() + name.substring(1); String type = field[j - row].getGenericType().toString(); // 获取属性的类型 if (type.equals("class java.lang.Integer")){ Method m = model.getMethod("set" + name,Integer.class); m.invoke(mobject,Integer.valueOf(sheet .getCell(cloNum,j).getContents())); } if (type.equals("class java.lang.Double")){ Method m = model.getMethod("set" + name,Double.class); m.invoke(mobject,Double.valueOf(sheet.getCell(cloNum,j) .getContents())); } if (type.equals("class java.lang.String")){ Method m = model.getMethod("set" + name,String.class); m.invoke(mobject,sheet.getCell(cloNum,j).getContents()); } } catch (NoSuchMethodException e){ e.printStackTrace(); } catch (SecurityException e){ e.printStackTrace(); } catch (IllegalAccessException e){ e.printStackTrace(); } catch (IllegalArgumentException e){ e.printStackTrace(); } catch (InvocationTargetException e){ e.printStackTrace(); } } // } // 关闭文件 book.close(); } catch (BiffException e){ log.info("文件读取错误*****************"); log.error(e.getMessage(),e); e.printStackTrace(); } catch (IOException e){ log.error(e.getMessage(),e); e.printStackTrace(); } return mobject; } }
相关文章推荐
- JAVA导入EXCEl处理数据简单教程
- Java 利用poi把数据库中数据导入Excel
- Java 利用poi把数据库中数据导入Excel
- 小例子:java利用poi读取excel中数据并导入数据库
- 利用java操作Excel表格(把Excel中的数据导入数据库中)
- java处理导入Excel数据重复数据,整理后在导入
- Java利用POI导入导出Excel中的数据
- 利用jxl向Excel中导入数据示例代码
- Java 利用poi把数据库中数据导入Excel
- Excel 数据导入到 Access、Sql Server 中示例代码
- Excel数据导入到Access,Sql Server中示例代码
- Java操作Excel(三)将Excel中的数据批量的导入数据库
- 利用PHP-ExcelReader实现PHP导入Excel数据[不通过CSV]
- Java版将EXCEL表数据导入到数据库中
- 利用ado将excel数据直接导入数据库
- 导入导出EXCEL数据时有关时间的处理
- 利用Mapping映射思想实现Excel之间的导入处理
- EXCEL表格数据导入到数据库示例,请需要的兄弟自行编写数据层!
- Java利用xml将大批量数据导出到excel的一个方法
- 利用SQL Server的DTS操作EXCEL、Access等数据表的导入导出