摘要:獲取表格數(shù)據(jù)獲取表格中的數(shù)據(jù)分為以下幾步獲取表格獲取某一行獲取這一行中的某個(gè)單元格代碼實(shí)現(xiàn)獲取第一個(gè)張表獲取每行中的字段獲取行獲取單元格中的值持久化獲取出單元格中的數(shù)據(jù)后,最后就是用數(shù)據(jù)建立對(duì)象了。獲取行獲取單元格中的值持久化相關(guān)參考
問(wèn)題描述
現(xiàn)需要批量導(dǎo)入數(shù)據(jù),數(shù)據(jù)以Excel形式導(dǎo)入。
POI介紹我選擇使用的是apache POI。這是有Apache軟件基金會(huì)開(kāi)放的函數(shù)庫(kù),他會(huì)提供API給java,使其可以對(duì)office文件進(jìn)行讀寫(xiě)。
我這里只需要使用其中的Excel部分。
實(shí)現(xiàn)首先,Excel有兩種格式,一種是.xls(03版),另一種是.xlsx(07版)。針對(duì)兩種不同的表格格式,POI對(duì)應(yīng)提供了兩種接口。HSSFWorkbook和XSSFWorkbook
導(dǎo)入依賴(lài)處理版本org.apache.poi poi RELEASE org.apache.poi poi-ooxml RELEASE
Workbook workbook = null; try { if (file.getPath().endsWith("xls")) { System.out.println("這是2003版本"); workbook = new XSSFWorkbook(new FileInputStream(file)); } else if (file.getPath().endsWith("xlsx")){ workbook = new HSSFWorkbook(new FileInputStream(file)); System.out.println("這是2007版本"); } } catch (IOException e) { e.printStackTrace(); }
這里需要判斷一下Excel的版本,根據(jù)擴(kuò)展名,用不同的類(lèi)來(lái)處理文件。
獲取表格數(shù)據(jù)獲取表格中的數(shù)據(jù)分為以下幾步:
1.獲取表格
2.獲取某一行
3.獲取這一行中的某個(gè)單元格
代碼實(shí)現(xiàn):
// 獲取第一個(gè)張表 Sheet sheet = workbook.getSheetAt(0); // 獲取每行中的字段 for (int i = 0; i <= sheet.getLastRowNum(); i++) { Row row = sheet.getRow(i); // 獲取行 // 獲取單元格中的值 String studentNum = row.getCell(0).getStringCellValue(); String name = row.getCell(1).getStringCellValue(); String phone = row.getCell(2).getStringCellValue(); }持久化
獲取出單元格中的數(shù)據(jù)后,最后就是用數(shù)據(jù)建立對(duì)象了。
ListstudentList = new ArrayList<>(); for (int i = 0; i <= sheet.getLastRowNum(); i++) { Row row = sheet.getRow(i); // 獲取行 // 獲取單元格中的值 String studentNum = row.getCell(0).getStringCellValue(); String name = row.getCell(1).getStringCellValue(); String phone = row.getCell(2).getStringCellValue(); Student student = new Student(); student.setStudentNumber(studentNum); student.setName(name); student.setPhoneNumber(phone); studentList.add(student); } // 持久化 studentRepository.saveAll(studentList);
相關(guān)參考:
https://poi.apache.org/compon...
https://blog.csdn.net/daihuim...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/73413.html
時(shí)間:2017年07月06日星期四說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:無(wú)學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 預(yù)備知識(shí) 基礎(chǔ)知識(shí) struts2框架(上傳下載功能) xml解析技術(shù)(導(dǎo)入模板) JQuery EasyUI(前臺(tái)美觀) 課程目錄 實(shí)現(xiàn)方式 定制導(dǎo)入模版 導(dǎo)入文件 導(dǎo)...
摘要:需要的技術(shù)框架利用其上傳下載功能解析技術(shù)定制導(dǎo)入模板制作前臺(tái)與格式對(duì)應(yīng),版本低,兼容性好與格式對(duì)應(yīng)組成的幾個(gè)概念工作薄工作表行記錄單元格創(chuàng)建中的的詳見(jiàn)如創(chuàng)建創(chuàng)建工作簿創(chuàng)建工作表創(chuàng)建第一行創(chuàng)建一個(gè)文件存盤(pán)名字性別男解析文件創(chuàng)建,讀取文件 需要的技術(shù) 1、strut2框架 利用其上傳下載功能2、xml解析技術(shù) 定制導(dǎo)入模板3、jquery UI 制作前臺(tái) 4、showImg(/i...
摘要:我想能不能像配置文件一樣可配置的導(dǎo)入導(dǎo)出,那樣使用起來(lái)就方便許多。配置和使用下面是員工信息模型。支持多種映射,使用英文逗號(hào)進(jìn)行分割。導(dǎo)入時(shí)它會(huì)以分割前面的作為導(dǎo)入時(shí)使用的值,后面的作為導(dǎo)出時(shí)使用的值后面值進(jìn)行逆推導(dǎo)出時(shí)同理。 1.前言 在工作時(shí),遇到過(guò)這樣的需求,需要靈活的對(duì)工單進(jìn)行導(dǎo)入或?qū)С觯郧白约阂沧鲞^(guò),但使用不靈活繁瑣。我想能不能像配置文件一樣可配置的導(dǎo)入導(dǎo)出,那樣使用起來(lái)就方...
摘要:積分消費(fèi)明細(xì)對(duì)賬單其中,有四個(gè)參數(shù),分別是,,,。導(dǎo)出讀取數(shù)據(jù)庫(kù)的信息,轉(zhuǎn)成。 public void detailExport() { String sourceSystem = getPara(source_system); String dataDate = getPara(data_date); Integer pointsType = get...
閱讀 3066·2023-04-26 00:49
閱讀 3729·2021-09-29 09:45
閱讀 995·2019-08-29 18:47
閱讀 2751·2019-08-29 18:37
閱讀 2734·2019-08-29 16:37
閱讀 3300·2019-08-29 13:24
閱讀 1782·2019-08-27 10:56
閱讀 2352·2019-08-26 11:42