/** * Step 1:根据beanExcelPath路径,导入所有Bean到beans */ private void importBeans() { Bean bean = null; //获取页签个数,从第二个页签开始,每个页签为一个bean int sum = this.hssfWorkbook.getNumberOfSheets(); for (int excelBeanIndex = 1; excelBeanIndex < sum; excelBeanIndex++) { //将页签内容解析生成bean bean = importBean(excelBeanIndex); beans.add(bean); } } private Bean importBean(int excelBeanIndex) { Bean bean = null; String beanName = null; String beanNote = null; String since = null; String version = null; String author = null; List<Parameter> parameters = new ArrayList<Parameter>(); Parameter parameter = null; String parameterName = null; String parameterNote = null; String parameterClazz = null; int beginParameter = 1; hssfSheet=hssfWorkbook.getSheetAt(excelBeanIndex); beanName = hssfWorkbook.getSheetName(excelBeanIndex); beanNote = cellValue(0, 1); since = Util.date2String(new Date(), "yyyy/MM/dd"); version = cellValue(0, 3); author = cellValue(0, 4); while (true) { parameterName = cellValue(beginParameter+1, 0); if (Util.isNullOrEmpty(parameterName)) break; parameterNote = cellValue(beginParameter+1, 4); // TODO 数据库字段类型转换成java基本类型 parameterClazz = cellValue(beginParameter+1, 1); parameter = new Parameter(parameterName, parameterNote, parameterClazz); parameters.add(parameter); beginParameter++; } bean = new Bean(beanName, beanNote, since, version, author, parameters); return bean; } /** * Step 2:根据模板地址,返回模板的字符串 * @param templatePath 某一个模板地址 * @return 读出模板的所有字符 */ private String importTemplate(String templatePath, Bean bean) { String s, temp = new String(), result = new String(); try { bufferedReader = new BufferedReader(new FileReader(templatePath)); while ((s = bufferedReader.readLine()) != null) { if (s.indexOf(PARAMETER_FOR_BEGIN) > 0) { while (true) { s = bufferedReader.readLine(); if (s == null || s.indexOf(PARAMETER_FOR_END) > 0) break; temp += s + "\n"; } result += convertBean(temp, bean); temp = ""; } else { result += convert(s, bean) + "\n"; } } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return result; } private String convertBean(String s, Bean bean) { String result = ""; String temp; List<Parameter> parameters = bean.getParameters(); for (Parameter parameter : parameters) { temp = s; result += converParameter(temp, parameter); } return result; }