将Excel生成实体类

package com.excel.test;

import java.util.List;

public class createUtil {

	public static String appendPrivate(List<String> types,List<String> attributes,List<String> mark){
		StringBuffer sb = new StringBuffer();
		if(types.size()==attributes.size()&&types.size()==mark.size()){
			for(int i=0;i<types.size();i++){
				sb.append(" 	/**\n");
				sb.append("	*"+mark.get(i)+"\n");
				sb.append("	*/\n");
				sb.append("	private "+types.get(i)+" "+attributes.get(i)+";\n\n");
			}
		}
		return sb.toString();
	}
	public static String getSet(List<String> types,List<String> attributes,List<String> mark){
		StringBuffer sb = new StringBuffer();
		if(types.size()==attributes.size()){
			for(int i=0;i<types.size();i++){
				String attribute = attributes.get(i);
				String c = String.valueOf(attribute.charAt(0));
                c = c.toUpperCase();
                attribute = c + attribute.substring(1);
                sb.append(" 	/**\n");
				sb.append("	* 设置"+mark.get(i)+"\n");
				sb.append("	* @param "+attributes.get(i)+" "+mark.get(i)+"\n");
				sb.append("	*/\n");
				sb.append("	public void set"+attribute+"("+types.get(i)+" "+attributes.get(i)+"){\n");
				sb.append("		this."+attributes.get(i)+" = "+attributes.get(i)+";\n");
				sb.append("	}\n\n");
				sb.append(" 	/**\n");
				sb.append("	*获得"+mark.get(i)+"\n");
				sb.append("	* @return "+attributes.get(i)+" "+mark.get(i)+"\n");
				sb.append("	*/\n");
				sb.append("	public "+types.get(i)+" get"+attribute+"(){\n");
				sb.append("		return "+attributes.get(i)+";\n");
				sb.append("	}\n\n");
			}
		}

		return sb.toString();
	}
}

  

package com.excel.test;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ReadExcel3 {

    public static void main(String[] args) throws IOException, InvalidFormatException {
        // TODO Auto-generated method stub

        File file = new File("D:\\user.xlsx");
        String fileName = file.getName();
        String className = "demo";
        File file1 = null;
         FileOutputStream fop = null;
        List<String> types = new ArrayList<String>();
        List<String> attributes = new ArrayList<String>();
        List<String> marks = new ArrayList<String>();
         if (fileName.endsWith("xlsx")){
             XSSFWorkbook workbooks = new XSSFWorkbook(file);
             XSSFSheet xssfSheet = workbooks.getSheetAt(0);
             int totalRows = xssfSheet.getPhysicalNumberOfRows();
             XSSFRow row = xssfSheet.getRow(0);
             className = row.getCell(0).getStringCellValue();
             System.out.println(className+"total:"+totalRows);
             for(int i=2;i<totalRows;i++){
                 XSSFRow row2 = xssfSheet.getRow(i);
                 attributes.add(row2.getCell(0).getStringCellValue());
                 types.add(row2.getCell(1).getStringCellValue());
                 marks.add(row2.getCell(2).getStringCellValue());
             }
         }else {
             HSSFWorkbook workbook = new HSSFWorkbook(FileUtils.openInputStream(file));
            //读取默认第一个工作表sheet
            HSSFSheet sheet = workbook.getSheetAt(0);
            int firstRowNum = 0;
            //获取sheet中最后一行行号
            int lastRowNum = sheet.getLastRowNum();
            HSSFRow row = sheet.getRow(firstRowNum);
            className = row.getCell(0).getStringCellValue();
            for (int i = 2; i <=lastRowNum; i++){
                HSSFRow row1 = sheet.getRow(i);
                attributes.add(row1.getCell(0).getStringCellValue());
                types.add(row1.getCell(1).getStringCellValue());
                marks.add(row1.getCell(2).getStringCellValue());
            }
        }

        StringBuffer sb = new StringBuffer();

        sb.append("public class "+className+"{\n\n");
        sb.append(createUtil.appendPrivate(types, attributes,marks));
        sb.append(createUtil.getSet(types, attributes,marks));
        sb.append("}");

        file1 = new File("d:/"+className+".java");
        fop = new FileOutputStream(file1);
        if (!file1.exists()) {
            file1.createNewFile();
        }
        byte[] contentInBytes = sb.toString().getBytes();

        fop.write(contentInBytes);
        fop.flush();
        fop.close();

        System.out.println("Done");
    }

}
时间: 2024-11-05 20:33:24

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

Java 根据固定格式的Excel生成实体类

/** * Excel文档转对象 * * @author dxm * */ public class ExcelToObject { /** * 转换 * * @param file */ public static void convert(File file, String savePath, String pack) { // Excel是否存在 if (null == file || !file.exists()) { return; } // 创建存放路径目录 File save =

eclipse逆向生成实体类

(转自:http://blog.csdn.net/wangpeng047/article/details/6877720) 做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再"自己"建立一变VO.意思是,在项目设计时,要么根据需求分析建立实体类,由正向生成数据库表:要么就先进行数据库表设计,再逆向生成实体类.没有说进行完任意一方的设计后再去花时间去自己匹配建立另一方的设计. 原因是:

如何通过java反射将数据库表生成实体类?

首先有几点声明: 1.代码是在别人的基础进行改写的: 2.大家有什么改进的意见可以告诉我,也可以自己改好共享给其他人: 3.刚刚毕业,水平有限,肯定有许多不足之处: 4.希望刚刚学习java的同学能有所启发. //这个是做转换的类,里面的DB只是封装了数据库的连接,大家可以用自己的,随意 package com.tt.util.gen.entity.tool; import java.io.File;import java.io.FileWriter;import java.io.IOExcep

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

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

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

最近工作电脑装完win10后,之前使用的codeSmith安装不了,索性自己写一个. 界面比较简单,如下图: 第一行为Oracle数据库的连接字符串.连接成功后,填充表到第4行的下拉列表中. 第二行为实体类命名空间. 第三行为保存生成类.xml文件选择文件夹. 1 private void btnConnect_Click(object sender, RoutedEventArgs e) 2 { 3 try 4 { 5 using (OracleConnection conn = new Or

2016.5.12 用PowerDesigner做数据库逆向工程及生成实体类

一.创建数据库物理模型 1.首先打开PowerDesigner-文件-逆向工程-数据库 2.在弹出窗口中选择数据库版本,最高10g选择,确定 3.创建数据源 4.点击SetUP...设置数据源 5.填写数据库实例名 6.填写用户名,密码点击connect 7.连接成功后点确定,即可生成物理模型. 二.生成实体类 1.Tools → Generate Object-Oriented Model, 2.弹出框General页选择模型语言C#,Detail页中一定要把Check Model项取消,否则

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

步骤大致如下: 第一步: window-->open Perspective-->MyEclipse Java Persistence 操作后会出现一个视图DB Brower:MyEclipse Derby 在空白区点击右键,新建一个数据库对象.我用的是mysql,其实我一直想用oracle之类的,只是机子内存小,又懒得倒腾别的,结果截个图吧: 左边的属性按照自己使用的数据库填就行了,左边部分是我建好以后的结果,数据库名叫mydb,有个customer表 是专门这次测试用的 第二步: 新建一个

蜗牛—Hibernate反向生成实体类及配置文件

今天学习了Hibernate的一些知识 第一步,打开myeclipse中的database视图,找到相应的表,选中后右键单击, 接下来, 蜗牛-Hibernate反向生成实体类及配置文件

在eclipse中生成实体类

1.在eclipse的windows中选中preferences在查询框中输入driver definition 2.点击add在Name/type中选中mysql jdbc driver 5.1然后点击 JAR List 3.下载个mysql-connector-java-5.1.35.jar后把把它放在项目的工作目录下后把2步骤中的mysql remove后然后添加这个工作目录下的jar包. 4.然后在data source explorer 新建个mysql连接 5.在连接的mysql中输