1. package com.excel.test;
  2.  
  3. import java.util.List;
  4.  
  5. public class createUtil {
  6.  
  7. public static String appendPrivate(List<String> types,List<String> attributes,List<String> mark){
  8. StringBuffer sb = new StringBuffer();
  9. if(types.size()==attributes.size()&&types.size()==mark.size()){
  10. for(int i=0;i<types.size();i++){
  11. sb.append(" /**\n");
  12. sb.append(" *"+mark.get(i)+"\n");
  13. sb.append(" */\n");
  14. sb.append(" private "+types.get(i)+" "+attributes.get(i)+";\n\n");
  15. }
  16. }
  17. return sb.toString();
  18. }
  19. public static String getSet(List<String> types,List<String> attributes,List<String> mark){
  20. StringBuffer sb = new StringBuffer();
  21. if(types.size()==attributes.size()){
  22. for(int i=0;i<types.size();i++){
  23. String attribute = attributes.get(i);
  24. String c = String.valueOf(attribute.charAt(0));
  25. c = c.toUpperCase();
  26. attribute = c + attribute.substring(1);
  27. sb.append(" /**\n");
  28. sb.append(" * 设置"+mark.get(i)+"\n");
  29. sb.append(" * @param "+attributes.get(i)+" "+mark.get(i)+"\n");
  30. sb.append(" */\n");
  31. sb.append(" public void set"+attribute+"("+types.get(i)+" "+attributes.get(i)+"){\n");
  32. sb.append(" this."+attributes.get(i)+" = "+attributes.get(i)+";\n");
  33. sb.append(" }\n\n");
  34. sb.append(" /**\n");
  35. sb.append(" *获得"+mark.get(i)+"\n");
  36. sb.append(" * @return "+attributes.get(i)+" "+mark.get(i)+"\n");
  37. sb.append(" */\n");
  38. sb.append(" public "+types.get(i)+" get"+attribute+"(){\n");
  39. sb.append(" return "+attributes.get(i)+";\n");
  40. sb.append(" }\n\n");
  41. }
  42. }
  43.  
  44. return sb.toString();
  45. }
  46. }

  

  1. package com.excel.test;
  2.  
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8.  
  9. import org.apache.commons.io.FileUtils;
  10. import org.apache.poi.hssf.usermodel.HSSFRow;
  11. import org.apache.poi.hssf.usermodel.HSSFSheet;
  12. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  13. import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
  14. import org.apache.poi.xssf.usermodel.XSSFRow;
  15. import org.apache.poi.xssf.usermodel.XSSFSheet;
  16. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  17.  
  18. public class ReadExcel3 {
  19.  
  20. public static void main(String[] args) throws IOException, InvalidFormatException {
  21. // TODO Auto-generated method stub
  22.  
  23. File file = new File("D:\\user.xlsx");
  24. String fileName = file.getName();
  25. String className = "demo";
  26. File file1 = null;
  27. FileOutputStream fop = null;
  28. List<String> types = new ArrayList<String>();
  29. List<String> attributes = new ArrayList<String>();
  30. List<String> marks = new ArrayList<String>();
  31. if (fileName.endsWith("xlsx")){
  32. XSSFWorkbook workbooks = new XSSFWorkbook(file);
  33. XSSFSheet xssfSheet = workbooks.getSheetAt(0);
  34. int totalRows = xssfSheet.getPhysicalNumberOfRows();
  35. XSSFRow row = xssfSheet.getRow(0);
  36. className = row.getCell(0).getStringCellValue();
  37. System.out.println(className+"total:"+totalRows);
  38. for(int i=2;i<totalRows;i++){
  39. XSSFRow row2 = xssfSheet.getRow(i);
  40. attributes.add(row2.getCell(0).getStringCellValue());
  41. types.add(row2.getCell(1).getStringCellValue());
  42. marks.add(row2.getCell(2).getStringCellValue());
  43. }
  44. }else {
  45. HSSFWorkbook workbook = new HSSFWorkbook(FileUtils.openInputStream(file));
  46. //读取默认第一个工作表sheet
  47. HSSFSheet sheet = workbook.getSheetAt(0);
  48. int firstRowNum = 0;
  49. //获取sheet中最后一行行号
  50. int lastRowNum = sheet.getLastRowNum();
  51. HSSFRow row = sheet.getRow(firstRowNum);
  52. className = row.getCell(0).getStringCellValue();
  53. for (int i = 2; i <=lastRowNum; i++){
  54. HSSFRow row1 = sheet.getRow(i);
  55. attributes.add(row1.getCell(0).getStringCellValue());
  56. types.add(row1.getCell(1).getStringCellValue());
  57. marks.add(row1.getCell(2).getStringCellValue());
  58. }
  59. }
  60.  
  61. StringBuffer sb = new StringBuffer();
  62.  
  63. sb.append("public class "+className+"{\n\n");
  64. sb.append(createUtil.appendPrivate(types, attributes,marks));
  65. sb.append(createUtil.getSet(types, attributes,marks));
  66. sb.append("}");
  67.  
  68. file1 = new File("d:/"+className+".java");
  69. fop = new FileOutputStream(file1);
  70. if (!file1.exists()) {
  71. file1.createNewFile();
  72. }
  73. byte[] contentInBytes = sb.toString().getBytes();
  74.  
  75. fop.write(contentInBytes);
  76. fop.flush();
  77. fop.close();
  78.  
  79. System.out.println("Done");
  80. }
  81.  
  82. }

将Excel生成实体类的更多相关文章

  1. 懒人小工具:T4生成实体类Model,Insert,Select,Delete以及导出Excel的方法

    由于最近公司在用webform开发ERP,用到大量重复机械的代码,之前写了篇文章,懒人小工具:自动生成Model,Insert,Select,Delete以及导出Excel的方法,但是有人觉得这种方法 ...

  2. NHibernate生成实体类、xml映射文件

    最近工作电脑装完win10后,之前使用的codeSmith安装不了,索性自己写一个. 界面比较简单,如下图: 第一行为Oracle数据库的连接字符串.连接成功后,填充表到第4行的下拉列表中. 第二行为 ...

  3. (转)使用myeclipse生成实体类和hibernate映射文件

    转至:http://blog.sina.com.cn/s/blog_9658bdb40100uiod.html 1.下载并安装myeclipse,如果已经安装,则忽略该步骤; 2.打开myeclips ...

  4. MyEclipse从数据库反向生成实体类之Hibernate方式 反向工程

    前文: hibernate带给我们的O/RMapping思想是很正确的,即从面相对象的角度来设计工程中的实体对象,建立pojo,然后在编写hbm.xml映射文件来生成数据表.但是在实际开发中,往往我们 ...

  5. .net 根据匿名类生成实体类,根据datatable生成实体类,根据sql生成实体类

    在开发中可能会遇到这几种情况 1.EF或LINQ查询出来的匿名对象在其它地方调用不方便,又懒的手动建实体类 2.通过datatable反射实体需要先建一个类 ,头痛 3.通过SQL语句返回的实体也需要 ...

  6. T4模板根据DB生成实体类

    1.前言 为什么会有这篇文章了,最近看到了一些框架,里面要写的代码太多了,故此就想偷懒,要是能写出一个T4模板,在数据库添加表后,根据模板就可以自动生成了类文件了,这样多好,心动不如行动.记得使用T4 ...

  7. 使用T4为数据库自动生成实体类

    T4 (Text Template Transformation Toolkit) 是一个基于模板的代码生成器.使用T4你可以通过写一些ASP.NET-like模板,来生成C#, T-SQL, XML ...

  8. T4模板_根据DB生成实体类

    为了减少重复劳动,可以通过T4读取数据库表结构,生成实体类,用下面的实例测试了一下 1.首先创建一个项目,并添加文本模板: 2.添加 文本模板: 3.向T4文本模板文件添加代码: <#@ tem ...

  9. MyEclipse数据库反向生成实体类

    MyEclipse数据库反向生成实体类 “计应134(实验班) 凌豪” 当我们在开发项目涉及到的表太多时,一个一个的写JAVA实体类很是费事.然而强大的MyEclipse为我们提供简便的方法:数据库反 ...

随机推荐

  1. Achieving High Availability and Scalability - ARR and NLB

    Achieving High Availability and Scalability: Microsoft Application Request Routing (ARR) for IIS 7.0 ...

  2. ASP.NET MVC学习之控制器篇(二)

    原文链接:http://www.asp.net/learn/mvc/ 这篇教程探索了ASP.NET MVC控制器(controller).控制器动作(controller action)和动作结果(a ...

  3. "琳琅满屋"调查问卷 心得体会及结果分析

    ·关于心得体会       当时小组提出这个校园二手交易市场的时候,就确定了对象范围,仅仅是面向在校大学生,而且在我们之前就已经有了很多成功的商品交易的例子可以让我们去借鉴,再加上我们或多或少的有过网 ...

  4. 这个setDefaultCloseOperation写不写的区别是什么?

      2009-03-23 13:40提问者采纳   设置用户在此窗体上发起 "close" 时默认执行的操作.必须指定以下选项之一: DO_NOTHING_ON_CLOSE(在 W ...

  5. swing Event-Listener-Adapter 对照表

    Source Event Event Listener AbstractButton (JButton,JToggleButton, JCheckBox,JRadioButton ActionEven ...

  6. Map的遍历

    @Test public void test() { Map<String,String> usersmap = new HashMap<>(); usersmap.put(& ...

  7. vc设置窗口透明

    ::SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, ::GetWindowLongPtr(GetSafeHwnd(), GWL_EXSTYLE) | WS_EX_L ...

  8. NCBI原始数据下载by Aspera Connect

    主要参考这篇文章: http://mp.weixin.qq.com/s?__biz=MzA5NjU5NjQ4MA==&mid=2651154488&idx=1&sn=e693a ...

  9. 2016 - 1 - 3 国旗选择demo

    // // ViewController.m // 国旗 // // Created by Mac on 16/1/3. // Copyright © 2016年 Mac. All rights re ...

  10. (spring-第2回【IoC基础篇】)Spring的Schema,基于XML的配置

    要深入了解Spring机制,首先需要知道Spring是怎样在IoC容器中装配Bean的.而了解这一点的前提是,要搞清楚Spring基于Schema的Xml配置方案. 在深入了解之前,必须要先明白几个标 ...