JAVA把excel表格的數據導入到數據庫

package com.insertdatebase;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

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.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import com.dao.DKInfoDao;
import com.dao.DaiKuanInfoIm;
import com.entity.DaiKuanInfo;
/*
 * 把excel表格的數據插入數據冷庫
 * @auther guo-xqi
 */
public class TestExcel {
	// 記錄類的輸出信息
	static Log log = LogFactory.getLog(TestExcel.class);
	// 獲取Excel文檔的路徑­
	public static String filePath = "D://daizhanghexiao.xls";

	public static void main(String[] args) {
		try {
			// 創建對Excel工作簿文件的引用
			HSSFWorkbook wookbook = new HSSFWorkbook(new FileInputStream(
					filePath));
			// 在Excel文檔中,第一張工作表的缺省索引是0
			// 其語句爲:HSSFSheet sheet = workbook.getSheetAt(0);
			HSSFSheet sheet = wookbook.getSheet("Sheet1");
			// 獲取到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((short) j);
						if (cell != null) {
							switch (cell.getCellType()) {
							case HSSFCell.CELL_TYPE_FORMULA:
								break;
							case HSSFCell.CELL_TYPE_NUMERIC:
								if (HSSFDateUtil.isCellDateFormatted(cell)) {
									value += cell.getDateCellValue() + ",";
								}else {
									value += cell.getNumericCellValue() + ",";
								}
								
								break;
							case HSSFCell.CELL_TYPE_STRING:
								value += cell.getStringCellValue() + ",";
								break;
							default:
								value += "0";
								break;
							}
						}
					}
					// 將數據插入到mysql數據庫中
//					System.out.println(value);
//					String string="Tue Feb 04 00:00:00 CST 2014";
//					 SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy",Locale.US);
//					 try {
//						Date d=sdf.parse(string);
//						sdf=new SimpleDateFormat("yyyy-MM-dd");
//						
//						System.out.println(sdf.format(d));
//					} catch (ParseException e) {
//						// TODO Auto-generated catch block
//						e.printStackTrace();
//					}
					//把得到的字符串拆分
					String[] val = value.split(",");
					//給新建的對象設置值
					DaiKuanInfo dkinfo = new DaiKuanInfo();
					dkinfo.setDKPerson(val[0]);
					SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy",Locale.US);
					Date dkDate;
					try {
						dkDate = sdf.parse(val[1]);
						sdf=new SimpleDateFormat("yyyy-MM-dd");
						String dkdateString=sdf.format(dkDate);
						dkinfo.setDKDate(java.sql.Date.valueOf(dkdateString));
						dkinfo.setDkje(Double.parseDouble(val[2]));
						dkinfo.setDBPerson(val[3]);
						SimpleDateFormat simdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy",Locale.US);
						Date hkdate=simdf.parse(val[4]);
						simdf=new SimpleDateFormat("yyyy-MM-dd");
						dkinfo.setHKDate(java.sql.Date.valueOf(simdf.format(hkdate)));
					} catch (ParseException e1) {
						e1.printStackTrace();
					}
					dkinfo.setYhje(Double.parseDouble(val[5]));
					dkinfo.setQkje(Double.parseDouble(val[6]));
					//插入數據庫
					DKInfoDao dkdao = new DaiKuanInfoIm();
					int boo = dkdao.addDaiKuanInfo(dkinfo);
					if (boo == 0) {
						continue;
					} else {
						break;
					}
					
				}
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

發佈了19 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章