1. 程式人生 > >java讀取excel 檔案,並把讀取到的資料轉換成javabean物件

java讀取excel 檔案,並把讀取到的資料轉換成javabean物件

javaBean物件
public class AcademicaChievements {

	private Integer aid;
	private String number;
	private String sname;
	private String award_category;
	private String award_name;
	private String award_organization;
	private String first_Author;
	private String second_Autor;
	private String major;
	private String dissertation_related_chapters;
	public Integer getAid() {
		return aid;
	}
	public void setAid(Integer aid) {
		this.aid = aid;
	}
	public String getNumber() {
		return number;
	}
	public void setNumber(String number) {
		this.number = number;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public String getAward_category() {
		return award_category;
	}
	public void setAward_category(String award_category) {
		this.award_category = award_category;
	}
	public String getAward_name() {
		return award_name;
	}
	public void setAward_name(String award_name) {
		this.award_name = award_name;
	}
	public String getAward_organization() {
		return award_organization;
	}
	public void setAward_organization(String award_organization) {
		this.award_organization = award_organization;
	}
	public String getFirst_Author() {
		return first_Author;
	}
	public void setFirst_Author(String first_Author) {
		this.first_Author = first_Author;
	}
	public String getSecond_Autor() {
		return second_Autor;
	}
	public void setSecond_Autor(String second_Autor) {
		this.second_Autor = second_Autor;
	}
	public String getDissertation_related_chapters() {
		return dissertation_related_chapters;
	}
	public void setDissertation_related_chapters(String dissertation_related_chapters) {
		this.dissertation_related_chapters = dissertation_related_chapters;
	}
	
	public String getMajor() {
		return major;
	}
	public void setMajor(String major) {
		this.major = major;
	}
	public AcademicaChievements() {
	 
	}
	@Override
	public String toString() {
		return "AcademicaChievements [aid=" + aid + ", number=" + number + ", sname=" + sname + ", award_category="
				+ award_category + ", award_name=" + award_name + ", award_organization=" + award_organization
				+ ", first_Author=" + first_Author + ", second_Autor=" + second_Autor
				+ ", dissertation_related_chapters=" + dissertation_related_chapters + "]";
	}
	
}
持久化工具類
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
 

public class  HibernateUtils {

	public  static SessionFactory sessionFactory;
	public static Transaction transaction;
	public static  Session session;
	static {
		
		Configuration config = new Configuration().configure();
		ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
		sessionFactory = config.buildSessionFactory(serviceRegistry);
		session = sessionFactory.openSession();
		transaction = session.beginTransaction();
	}
	public static void closeSession(Session session){
		if(session!=null){
			session.close();
		}
	}
	 
}
對映檔案
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2018-4-11 20:04:18 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
    <class name="com.guo.pojo.AcademicaChievements" table="ACADEMICACHIEVEMENTS">
        <id name="aid" type="java.lang.Integer">
            <column name="AID" />
            <generator class="increment" />
        </id>
        <property name="number" type="java.lang.String">
            <column name="NUMBER" />
        </property>
        <property name="sname" type="java.lang.String">
            <column name="SNAME" />
        </property>
        <property name="award_category" type="java.lang.String">
            <column name="AWARD_CATEGORY" />
        </property>
        <property name="award_name" type="java.lang.String">
            <column name="AWARD_NAME" />
        </property>
        <property name="award_organization" type="java.lang.String">
            <column name="AWARD_ORGANIZATION" />
        </property>
        <property name="first_Author" type="java.lang.String">
            <column name="FIRST_AUTHOR" />
        </property>
        <property name="second_Autor" type="java.lang.String">
            <column name="SECOND_AUTOR" />
        </property>
        <property name="major" type="java.lang.String">
            <column name="MAJOR" />
        </property>
        <property name="dissertation_related_chapters" type="java.lang.String">
            <column name="DISSERTATION_RELATED_CHAPTERS" />
        </property>
    </class>
</hibernate-mapping>

測試類

package hibernate_02;

import java.io.File;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
 

import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;

import com.guo.hibernatetuitls.HibernateUtils;
import com.guo.pojo.AcademicaChievements;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class TestHIbernate {

	 
	Session session = HibernateUtils.session;
	Transaction transaction	 = HibernateUtils.transaction;
	@Test
	public void add() throws Exception {

		File file = new File("F:\\test2.xls");
		Workbook wb = Workbook.getWorkbook(file);
		Sheet[] sheets = wb.getSheets();
		// 遍歷每頁
		for (Sheet s : sheets) {
			int rows = s.getRows();
			if (rows > 0) {
				// 遍歷每行
				for (int i = 3; i < rows; i++) {
					AcademicaChievements academicaChievements = new AcademicaChievements();
					Field[] beanFiled = academicaChievements.getClass().getDeclaredFields();
					Cell[] cells = s.getRow(i);
					if (cells.length > 0) {
						// 遍歷每行中的每列
						for (int j = 1; j < cells.length; j++) {
							String str = cells[j].getContents().trim();
							if (str != "") {
								try {
									 
									beanFiled[j].setAccessible(true);
									 beanFiled[j].set(academicaChievements, str);
								} catch (IllegalArgumentException e) {
									e.printStackTrace();
								} catch (IllegalAccessException e) {
									e.printStackTrace();
								}
							}

						}
						 session.save(academicaChievements);
					}
				}
			}
			 transaction.commit();
			 HibernateUtils.closeSession(session);
		}

	}
	
 
}
讀取excel檔案所用的jar包是jxl.jar,所以不用讀取excel 2007.