1. 程式人生 > >利用poi將excel表中資料讀取存入mysql資料庫(資料量比較大)

利用poi將excel表中資料讀取存入mysql資料庫(資料量比較大)

最近被老大安排了一個任務,利用程式將excle表中的資料讀取到,做處理,然後存進資料庫。接到任務的時候人是懵逼的。但是安排的任務也得硬著頭皮完成。現將做的東西記錄如下,方便以後查詢。

這個小demo的原型是在網上找的,demo連結如下

http://www.cnblogs.com/hongten/p/java_poi_excel.html

這個demo基本能夠實現將excel中的資料讀取然後存到mysql這個功能,但是,還遠沒有達到自己這個任務的業務要求。

我這個任務要求如下:

公司老大需要統計這一年中我們公司的機票銷售情況,excel表格比較多,比較繁瑣,他要求將這個一年中所有的機票銷售情況存進mysql中,

資料庫mysql中表結構如下


十二個月中其中某個月份的資料夾結構


某個月中某個平臺的銷售報表——總表(改簽表在銷售表中的sheet1中,退票報表是單獨一個excle)


某個月中某個平臺的銷售報表——改簽表


退票表中的excel資料結構(這個是所有平臺的)


資料庫裡面的表字段和excel中表頭基本一一對應,但是需要新加三個欄位,source、refund、change

這裡對著三個欄位說明一下

source是平臺來源,refund是退票(預設為0)、change是改簽(預設為0)

不同的平臺通過source來區分,當記錄平臺銷售記錄的excel中的總表(sheet0)中的訂單號出現在改簽表(sheet1)或者另外一個excel(退票表)中的時候,資料庫中該訂單號對應的改簽或者退票的欄位變為1。

總表中訂單號會出現重複的情況,當重複的時候,存進資料庫的時候訂單號只取一條,但是過濾掉的那些訂單號對應的姓名,票號要疊加,以逗號隔開。因為其他欄位都是一樣的,只取一個就行。

一般來講,將相同的訂單號合併後訂單號都是唯一的,但是不同平臺可能出現相同的訂單號。這種情況本文沒有考慮。

(也不太知道該怎麼寫,想到哪裡就寫到哪裡了)

接下來就是專案結構


對專案結構和原始碼就不多解釋了,

準備上傳原始碼來著,但是編輯頁面還不知道該怎麼上傳,待會兒單獨上傳。

最後說一下遇到的問題

1.最開始做的時候,網上找的demo只支援2003版的excel,如果是2007版,會報錯。需要匯入新的jar包。具體需要哪些jar包網上百度一大堆。就不記錄了

2.剛開始做完後,大約兩萬條資料,導進資料庫大概花了30分鐘左右,這個,,,,,,就不多評價這個速度了。耗時這麼久的原因就是我是單條插入資料庫,需要頻繁開啟,關閉資料庫連線。這個過程相當耗時,後來百度得到(http://blog.csdn.net/whucyl/article/details/20838079)優化方法。兩萬多條資料耗時只需要1分鐘左右,這中間的時間差嚇到我了。

大概就記錄這麼多,能力有限,歡迎指正其中的錯誤,原始碼連結:http://download.csdn.net/detail/rookie_s/9694373

相關推薦

利用poiexcel資料讀取存入mysql資料庫料量比較

最近被老大安排了一個任務,利用程式將excle表中的資料讀取到,做處理,然後存進資料庫。接到任務的時候人是懵逼的。但是安排的任務也得硬著頭皮完成。現將做的東西記錄如下,方便以後查詢。 這個小demo的原型是在網上找的,demo連結如下 http://www.cnblogs.

利用PythonExcel資料匯入Mysql資料庫

 python操作Excel 需要匯入xlrd包,可以通過pip install xlrd 一鍵安裝。 #coding=utf-8 ''' python 將指定目錄下的excel檔案匯入到資料庫中 ''' # 引入資料庫包 import pymysql # 引入操作excel包

使用C#Excel檔案資料匯入SQL Server資料庫

由於專案中加入了新的功能,可以使管理員向資料庫中匯入Excel資料。因此,在商品管理這塊需要對Excel進行操作,在網上查了些資料,根據專案的實際情況進行了一定的優化,這裡簡單的介紹下。 C#程式碼 /// <summary> /// 上傳Excel檔案,並將資

java把excel資料匯入到mysql資料庫

用java把excel表的資料匯入到資料庫(可能有些型別還沒考慮完全,抽空寫的) ———————————————————————————————————————————————————————————— 簡單的思路 一、先獲取資料庫表的欄位名、主鍵名, 二、讀取

phpjson格式的資料直接存入mysql資料庫

直接使用php函式 json_encode ,資料存入mysql時會報錯: Php程式碼   $imgs_str = json_encode($imgs_array);   $imgs_str = addslashes($imgs_str);   $update

Excel資料 轉換成XML 並對XML資料進行讀取

EXCEL 轉換成 XML 工具類 using System; using System.Collections.Generic; using System.Data; using System.Data.OleDb; using System.Xml; usi

JavaExcel表格資料匯入至資料庫

        上一節介紹了Java將資料庫表中資料匯出至Excel表格,那麼本節來介紹它的逆過程,也就是將Excel表格中的資料逐行匯入資料庫中的表中,依然需要使用Apache的POI,上一節已經說過也附了這個jar包的下載地址,這一節就不過多的說,直接講如

利用python進行資料分析——基礎篇】利用Python處理和分析Excel資料實戰

作為一個學習用Python進行資料分析的新手來說,通過本文來記錄分享一些我在用Python中的pandas、numpy來分析Excel表中資料的資料清洗和整理的工作,目的是熟悉numpy以及pandas基礎操作,所有操作利用Excel均可以方便實現。備註:本文中使用的是ipy

sqlserver怎麼excel資料匯入到資料庫

在資料庫初始階段,我們有些資料在EXCEL中做好之後,需要將EXCEL對應列名(匯入後對應資料庫表的欄位名),對應sheet(改名為匯入資料庫之後的表名)匯入指定資料庫, 相當於匯入一張表的整個資料。匯入之前需要檢查是否存在同名的表,匯入的資料表以“$”結尾就是為了避免表重複,以作區分。下面就來看看具體操作步

ssm利用poiexcel資料匯入資料庫

POI匯入資料庫 1.前臺頁面 <form action="<%=request.getContextPath()%>/doFile.action" method="post" enctype="multipart/form-data">     

PHPExcelexcel資料匯入資料庫

一:話不多說,上乾貨     1.首先,需要建立個數據庫 product     資料庫程式碼參考: /* Navicat MySQL Data Transfer Source Server : TP-jifen-demo

利用POI匯出Excel

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apache.poi&l

如何對比mysql資料資料excel資料是否重複?

一、利用excel比對 1、將mysql資料表匯出為excel 2、將表格資料與excel資料進行對比 方法一:函式COUNTIF     IF(COUNTIF(資料庫資料所在的區域,目標值所在區域)=0,”不重複”,”“)      方法二:函式Ma

利用POIExcel轉化成XML檔案

一、導包       <dependency>             <groupId>dom4j</groupId>             <artifactId>dom4j</artifactId>   

利用POIExcel文件轉換為Html

        excel文件轉換為html其實和word轉html相類似,優點也很明顯。請參考 word轉html public static void convertExcel2Html(String excelFilePath,String htmlFilePat

mysql一個資料插入另一張,排重,刪除,匯入

將一個表中資料插入另一張表的語句: insert into 目標表(欄位1,欄位2,欄位3……) select  欄位1,欄位2,欄位3… from 來源表 where 條件1 and 條件2; 排重很簡單,只要在需要排重的欄位前加distinct就可以嘞!eg~ 查詢記錄

如何 Excel 檔案匯入到 Navicat for MySQL 資料庫

  Navicat for MySQL 是一套最為專業的管理和開發 MySQL 資料庫工具,匯入資料是進行管理的第一步,那麼如何將 Excel 檔案資料匯入到 Navicat for MySQL 資料庫呢? 將 Excel 檔案匯入到 Navicat for MySQL

JAVA 爬取指定網站的資料存入MySQL資料庫 maven +httpclient+jsoup+mysql

            最近在做一個小專案,因為要用的資料爬取,所以研究了好多天,分享一下自己的方法 目錄結構: 自己建立maven工程,匯入相關依賴:pom.xml <?xml version="1.0" enco

excel資料轉成insert語句插入資料庫料量為幾十萬

最近接到一個蛋疼的活,要把excel中的資料,匯入到資料庫中, 剛開始首先想到的是用程式去做,但是因為時間很緊,寫程式加除錯,也不來及,於是就像直接把excel的資料轉化成insert語句,然後批量執行, 資料如下, 1、把excel的資料轉成inser int

多個語句的刪除多個欄位

1、查詢表中多餘的重複記錄,重複記錄是根據單個欄位(Id)來判斷   select * from 表 where Id in (select Id from 表 group byId having c