java讀取excel 檔案,並把讀取到的資料轉換成javabean物件
阿新 • • 發佈:2019-01-08
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.