excel 表數據導入到 數據庫表

来源:互联网 发布:如何缩小贫富差距 知乎 编辑:程序博客网 时间:2024/06/07 11:02

今天做了天文園,要我把excel表的數據導入到mysql數據庫表裡。由於數據太多,手動導入到話 太累,屬於盲幹。於是寫了個程序。

環境:myeclipse 6.5,mysql

導入POI.jar 包

以下是本人寫的測試程序。

excel 表格 : 姓名和年齡

mysql 表:user

利用myeclipse 反向工程 生成user類(我集成了hibernate),寫好相關方法。 接下來是本文的重點:

package com.txj.client;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import com.txj.dao.UserDao;import com.txj.entity.User;public class ExcelToMysql {// 記錄類的輸出信息static Log log = LogFactory.getLog(ExcelToMysql.class);// 讀取Excel文檔的路徑public static String filePath = "D://user.xls";public static void main(String[] args) {try {// 創建對excel工作簿的引用HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(filePath));// 在excel文檔中,第一張工作表的缺省索引是0,其語句為:HSSFSheet sheet =// workbook.getSheetAt(0);HSSFSheet sheet = workbook.getSheet("Sheet2");// 獲取到excel文件中的所有行數int rows = sheet.getPhysicalNumberOfRows();// 遍歷行for (int i = 0; i < rows; i++) {// 讀取左上單元格HSSFRow row = sheet.getRow(i);if (row != null) {// 獲取到excel文件中的所有的列int cells = row.getPhysicalNumberOfCells();String value = "";// 遍歷列for (int j = 0; j < cells; j++) {// 獲取列的值HSSFCell cell = row.getCell(j);if (cell != null) {switch (cell.getCellType()) {case HSSFCell.CELL_TYPE_FORMULA:break;case HSSFCell.CELL_TYPE_NUMERIC:value+=(int)cell.getNumericCellValue()+",";break;case HSSFCell.CELL_TYPE_STRING:value+=cell.getStringCellValue()+",";break;default:break;}}}//將數據插入到mysql數據庫中String[] val = value.split(",");User user = new User();user.setDname(val[0]);user.setAge(Integer.parseInt(val[1]));//System.out.println(value);UserDao userDao  = new UserDao();userDao.add(user);}}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

參考文檔:http://www.cnblogs.com/xucan/archive/2009/08/09/1542238.html

 

 

 

原创粉丝点击