1. 程式人生 > >小例子:java利用poi讀取excel中資料並匯入資料庫

小例子:java利用poi讀取excel中資料並匯入資料庫

問題描述:

資料夾下有若干excel檔案,檔名為10.教育局.xls   11.衛生院.xls     ................有很多;中間的漢字為單位名稱,需要匯入資料庫,每個單位名稱要有一個單位id匹配;每個excel中有若干個sheet頁的名字,每個名字即為科室名稱,要匯入資料庫並有科室id

解決方案:

利用poi即可讀取出每個sheet頁的名字

讀取單位名稱:

用File類中的方法可獲取到每個excel檔名,由於所需要的單位名稱就夾在兩個“.”之間,可用indexOf()和lastIndexOf()獲取到兩個點的下標,然後獲取子串得到單位名稱

A.java

package importry;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class A {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String path = "C:\\Users\\Administrator\\Desktop\\嘗試";
		File file = new File(path);
		File[] filelist = file.listFiles();
		C cc =new C();
		//filelist[0].toString()為每個excel檔案的完整路徑
		System.out.println("該資料夾下的檔案個數:"+filelist.length);
		for(int i=0;i<filelist.length;++i)
		{
			try {
				//對檔名進行字串的相關處理,獲得所需要的單位名稱
				String s = filelist[i].getName();
				String dwmc = s.substring(s.indexOf(46)+1,s.lastIndexOf(46));
				//匯入單位名稱
				cc.import_dw(dwmc);
				InputStream is = new FileInputStream(filelist[i].toString());
				HSSFWorkbook wb = new HSSFWorkbook(is);//建立工作簿
				int sheetnumber = wb.getNumberOfSheets();//獲取此工作簿下sheet頁的個數
				for(int j=0;j<sheetnumber;++j)
				{
				HSSFSheet sheet = wb.getSheetAt(j);//當前sheet頁
				String ksmc = sheet.getSheetName();//每個sheet頁名字即科室名稱
				cc.import_ks(ksmc);//匯入科室名稱
				}
				//System.out.println();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

}

B.java
package importry;
import java.sql.Connection;
import java.sql.DriverManager;
//資料庫操作類
public class B {
	public Connection getconnection()
	{
		Connection conn=null;
		String url ="jdbc:mysql://localhost:3306/mydb";
		String user = "root";
		String password="mysql";
		//1.載入驅動
		try {
			Class.forName("com.mysql.jdbc.Driver");
			//2.連線資料庫
			 conn = DriverManager.getConnection(url,user,password);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
}
C.java
package importry;

import java.sql.Connection;
import java.sql.Statement;
//匯入的操作類
public class C {
	public void import_dw(String dwmc)//匯入單位名稱
	{
		B bb =new B();
		Connection conn=bb.getconnection();
		try {
			Statement sm =conn.createStatement();
			//向已有的dw表中插入單位名稱,id會自動增加
			String sql = "insert into dw (dwmc) values('"+dwmc+"')";
			sm.executeUpdate(sql);
			sm.close();
			conn.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public void import_ks(String ksmc)//匯入科室名稱
	{
		B bb =new B();
		Connection conn=bb.getconnection();
		try {
			Statement sm =conn.createStatement();
			//向已有的ks表中插入科室名稱,id會自動增加
			String sql = "insert into ks (ksmc) values('"+ksmc+"')";
			sm.executeUpdate(sql);
			sm.close();
			conn.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}


相關推薦

例子java利用poi讀取excel資料匯入資料庫

問題描述: 資料夾下有若干excel檔案,檔名為10.教育局.xls   11.衛生院.xls     ................有很多;中間的漢字為單位名稱,需要匯入資料庫,每個單位名稱要有一個單位id匹配;每個excel中有若干個sheet頁的名字,每個名字即為科

java利用poi讀取excel資料

所需的jar包: 程式碼: /** * * @param cell * 一個單元格的物件 * @return 返回該單元格相應的型別的值 */ public static Object getRightTypeCell(Ce

Java開發技巧使用Apache POI讀取Excel

前言 在資料倉庫中,ETL最基礎的步驟就是從資料來源抽取所需的資料,這裡所說的資料來源並非僅僅是指資料庫,還包括excel、csv、xml等各種型別的資料介面檔案,而這些檔案中的資料不一定是結構化儲存的,比如各種各樣的報表檔案,往往是一些複雜的表格結構,其中不僅有我們需要的

Java利用POI 讀取Excel行列數,getLastRowNum()和getLastCellNum()的區別

一般讀取行總數時,會呼叫getLastRowNum(),讀取列總數時,會呼叫getLastCellNum(),但這兩個方法的返回值有點區別。 sheet.getLastRowNum();//返回最後一行的索引,即比行總數小1 row.getLastCellNum();//返回的是最後一列

java利用poi讀取Excel檔案

java讀取Excel檔案,筆者認為:從結構上來看,Excel檔案是由一個一個的單元格組成的,有點像細胞cell,逐行的排列。那麼我們讀的時候也應該逐行逐行的讀,從左到右的尋找每一個cell。一、例項程式碼: 只是實現了一種方式,因為依照讀取內容的不同,讀取的後想要的操作不同,因此不能苟同全部,只是方法是相

java使用poi讀取excel表格資料工具類

package com.eyric.excel; import java.io.*; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; import

java獲取excel資料存入資料庫

1--獲取excel檔案檔案所在路徑       由於公司的平臺框架封裝比較嚴重,獲取路徑方法可能略有不同,不必太放心上。 //獲取平臺附件配置檔案附件存放路徑 String realPath = F

Java開發技巧(六)使用Apache POI讀取Excel

前言 在資料倉庫中,ETL最基礎的步驟就是從資料來源抽取所需的資料,這裡所說的資料來源並非僅僅是指資料庫,還包括excel、csv、xml等各種型別的資料介面檔案,而這些檔案中的資料不一定是結構化儲存的,比如各種各樣的報表檔案,往往是一些複雜的表格結構,其中不僅有我們需要的資料,還有一些冗餘的、無價值的資料

Java 利用 poi 生成 Excel檔案的通用例子

在用java 寫資料庫應用的時候, 通常會生成各種報表,而這些報表可能會被匯出為各種格式的檔案,比如Excel文件,pdf 文件等等. 今天先做了一個生成Excel 文件的例子,主要解決以下問題: 生成 Excel 文件. 保護生成Excel文件,設定密碼訪問. 自動對生成的Exce

javapoi讀取Excel表格的數據

stream 數據 orm xlsx 其中 type() 2.6 create 穩定 Java讀寫Excel的包是Apache POI(項目地址:http://poi.apache.org/),因此需要先獲取POI的jar包,本實驗使用的是POI 3.9穩定版。Apac

java利用poi解析excel文件

sheet 文件 引入 exceptio form number string lean error: 首先需要引入以下jar包 如果使用maven,需要添加兩個依賴 <dependencies> <dependency>

10、利用POI讀取excel資料

自動化指令碼和資料是分離的,這裡是通過POI來實現excel的資料讀取的。 以下實現的是1個excel sheet表中可以分作多個表,判斷一個表是否結束是根據空格來的。 程式碼為: package common;import java.util.ArrayList;import java.

Java使用Poi讀取Excel資料(exor)

讀取Excel使用一個小工具exor exor是一個開源專案,封裝了一些poi讀取excel的操作,可以讀取excel資料並格式化為二維結構 xlsx和xls格式都可以讀取 exor的依賴:commons-collections4-4.2、poi-3.17、poi-oo

Java使用poi讀取Excel

在做之前新說明一下遇到的坑吧。(這裡給H1標題) 從excel檔案裡顯示的資料為 "1" 結果通過 row.getCell(0) 讀出來變成了 1.0 在轉換成int型別居然需要 Double.valueOf(row.getCell(0).toString().trim()

java poi讀取excel表格資料

package com.tl.web.signup.util; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.i

java利用POI實現Excel匯入匯出詳解-支援97-2013版本以及2017版本

package com.kero99.ygc.excel; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import org.apache.

java 利用 poi 生成 Excel檔案與spring使用檔案流形式下載檔案

本文為結合參考資料整合而來。 第一步導包: 三個jar: poi poi-ooxml poi-ooxml-schemas maven: <properties> <poi.version>3.12</p

Java使用poi讀取excel資料excel可能很大,先轉換為csv再讀取

————————————配置———————————— jdbc.properties中加入: excelUrl=/……xlsx檔案目錄路徑/ (excelUrl + “xxxx.xlsx” 為完整路徑) 匯入poi-3.16下的6個jar包,poi-3.16/l

java 使用poi 讀取Excel

<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <v

java使用POI讀取excel檔案,相容xls和xlsx

public List<Double> readExcels(InputStream is)throws Exception{List<Double> xlsxList = new ArrayList<Double>();    try {             if(i