【程式碼】Excel匯入到資料庫
前言
最近專案中需要將Excel中資料匯入到資料庫中,完成後,做一個程式碼總結。
程式碼
入參:Excel檔案完整路徑。import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class InsertExcel { /** * 解析方法 * * @param file * @return * @throws Exception */ public List<String[]> getExcel(String filePath) throws Exception { // 建立對Excel工作簿檔案的引用 boolean isExcel2003 = filePath.toLowerCase().endsWith("xls") ? true : false; Workbook workbook = null; if (isExcel2003) { workbook = new HSSFWorkbook(new FileInputStream(new File(filePath))); } else { workbook = new XSSFWorkbook(new FileInputStream(new File(filePath))); } // 在Excel文件中,第一張工作表的預設索引是0 // 其語句為: // HSSFSheet sheet = wookbook.getSheetAt(0); Sheet sheet = workbook.getSheet("T_POFO_ASSET"); // 獲取到Excel檔案中的所有行數 int rows = sheet.getPhysicalNumberOfRows(); // 遍歷行 List<String[]> list_excel = new ArrayList<String[]>(); for (int i = 1; i <= rows; i++) { // 讀取左上端單元格 Row row = sheet.getRow(i); // 行不為空 if (row != null) { // 獲取到Excel檔案中的所有的列 int cells = row.getPhysicalNumberOfCells(); String value = ""; // 遍歷列 for (int j = 0; j <= cells; j++) { // 獲取到列的值 Cell cell = row.getCell(j); if (cell != null) { switch (cell.getCellType()) { case Cell.CELL_TYPE_FORMULA: break; case Cell.CELL_TYPE_NUMERIC: value += cell.getNumericCellValue() + ","; break; case Cell.CELL_TYPE_STRING: value += cell.getStringCellValue() + ","; break; default: value += "0"; break; } } } String[] val = value.split(","); list_excel.add(val); } } workbook.close(); return list_excel; } }
出參:list<String[]>,每一行為一list,list中欄位在字串陣列中。可根據具體的需要插入到list<實體>中。
總結
輸出引數後,之前還寫過一篇部落格,mybatis批量插入資料,入參為list,可以將此功能完成,在此不多敘述。
相關推薦
【程式碼】Excel匯入到資料庫
前言 最近專案中需要將Excel中資料匯入到資料庫中,完成後,做一個程式碼總結。 程式碼 import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; imp
【PHP】全自動安裝資料庫,不需要手動匯入
author:咔咔 wechat:fangkangfk 用了很多的自動安裝資料庫的專案了,今天也來寫一個,只是一個簡單版本,可以按照這個思路來建立適合自己專案的安裝資料庫 原始碼地址問價: https://download.csdn.net/download/f
【C#】Excel動態匯入多張表
前言 昨天去一家公司面試,專案經理提了一個專案很緊的專案需求,Excel動態匯入多張表,同時根據給出公式做表內及表間的資料校驗,晚上回來之後一直到今天下午就一直再搗鼓著,不過遺憾的是沒能完美實現上述功能。不過卻實現了簡單實現了Excel的多表匯入。下面是我的程式碼思
Excel匯入資料庫,程式碼實現。
Excel匯入的基本實現: 1.先把Excel匯入DataSet裡 2.再把其中的值區出來,利用sql語句插入到資料庫裡。 /// <summary> /// 實現SQL語句的構造! /// </summary> ///
【Python】Excel-3
中文名字 names IT 指定位置 xlsx clas arch 公式 bar 1 1、 導入Excel模塊:from openpyxl import Workbook 2 3 2、 創建Excel對象:wb=Workbook() 4
【轉】postgresql 檢視資料庫叢集建立時間
原文連結:https://blog.csdn.net/ctypyb2002/article/details/80930809 使用 pg_controldata 檢視 Database system identifier $ /usr/pgsql-10/bin/pg_controldata
【mysql】mysql建立資料庫,基字符集 和 資料庫排序規則 的對比選擇
1.一般選擇utf8.下面介紹一下utf8與utfmb4的區別。 utf8mb4相容utf8,且比utf8能表示更多的字元。至於什麼時候用,看你的做什麼專案了,到https://www.cnblogs.com/sxdcgaq8080/p/9932786.html看unicode編碼區從1 ~ 126就屬於傳
【原創】EXCEL公式經驗(7)---EXCLE一般都是返回單個值得,如何寫公式返回多個匹配值?
(1)一般excel都只能在一個單元格,且是輸入公式的這個單元格,返回一個值 (2)少數情況,可以在這個一單元格返回多個值 (3)現在考慮的是,輸入公式後,可以返回多個值 看起來公式還是遵循了(1)原則 INDEX($A:$A
【oracle】dual在資料庫不同啟動狀態其欄位數
dual在資料庫不同啟動狀態其欄位數 不經意間在《oracle DBA工作日記》看到dual這個系統表在資料庫nomount、mount、open狀態其欄位不一樣,驗證後記錄如下: --關閉資料庫 SQL> shutdown immediate Database cl
【程式碼】第12章 pyspider框架的使用
關於 pyspider Web預覽介面太小的解決方法 修改C:\Program Files\python3.6.5\Lib\site-packages\pyspider\webui\static\debug.min.css的第一行 清理chrome快取,頁面大小終於正常了。。。。 CSS
【程式碼】用Python玩轉微信,echarts餅圖,WordCloud雲圖,自動回覆訊息,好友地區熱圖
參考用Python玩轉微信(一),做了一些修改 import re import os import time import itchat from echarts import Echart, Legend, Pie import wordcloud from wordcloud im
【程式碼】微信訂閱號
參考使用python一步一步搭建微信公眾平臺(一)嘗試搭建微信訂閱號,採用較舊的方法: 申請訂閱號,新增新浪各個節點到ip白名單 新浪雲sae應用,將程式碼git到新浪雲sae應用 配置伺服器發現Token驗證失敗。。。。。 檢視sae日誌中心: 1.ea
【程式碼】第11章 APP的爬取
11.1 Charles的使用 電腦win10安裝Charles,安裝受信任的證書; 替換安裝目錄的charles.jar,得到破解版; 為解決亂碼問題,網上一些做法: 將SSL代理設定裡add,Host填 * ,port填443; Charles.ini加上UTF-8; Tools裡R
【程式碼】Fluent Python
14.1 Sentence類第1版:單詞序列 從 Python 3.4 開始,檢查物件 x 能否迭代,最準確的方法是:呼叫 iter(x) 函式,如果不可迭代,再處理 TypeError 異常。這比使用 isinstance(x, abc.Iterable) 更準確,因為 iter(x) 函
【程式碼】第9章 代理的使用
9.1 代理的設定 # urllib設定 HTTP 代理 """ from urllib.error import URLError from urllib.request import ProxyHandler, build_opener # IP/PORT: http://www.
【Python】Excel操作
目錄 xlrd、xlwt模組 xlrd讀操作 xlwt寫操作 xluntils模組 pyExcelerator模組 讀操作 寫操作 參考 用python來自動生成excel資料檔案。python處理excel檔案主要是第三方模組庫xlrd、xlwt、xlunt
【程式碼】Python刷題
之前用C刷LeetCode,也就刷了60道吧,結果後來也不刷了。。。 現在主要用Python,刷一些題目熟悉語法,當然還有資料結構和演算法。 給定一個數組 strs,其中的資料都是字串,給定兩個字串 str1,str2。如果這兩個字串都在 strs陣列中,就返回它們之間的最小距離;如果其
【程式碼】小技巧,動態更新中。。。。
若要在迴圈內部修改正在遍歷的序列(例如複製某些元素),建議您首先製作副本。在序列上迴圈不會隱式地建立副本。切片表示法使這尤其方便: >>> words = ['cat', 'window', 'defenestrate'] >>> for w in w
【10】【1】Android GreenDao資料庫講解
GreenDao資料庫講解 在Android開發過程中,資料的快取的開發可能會使用SQLite。然而在使用它時,我們往往需要做許多額外的工作,編寫Native SQL(原生的)語句與解析查詢結果等。所
利用excel匯入資料庫檔案
1首先了解自己要匯入的Excel的列以及其型別。 2首先建立一個空表,列與要匯入的excel的列名稱相同。同時定義資料的型別。也可以在在【ODBC匯入器】窗體中單擊 【建立表】,如下圖所示,設定表的屬性,在【列】面板下,將根據Excel的列構建列,單擊【應用】,該表