摘要:獲取表格數(shù)據(jù)獲取表格中的數(shù)據(jù)分為以下幾步獲取表格獲取某一行獲取這一行中的某個單元格代碼實現(xiàn)獲取第一個張表獲取每行中的字段獲取行獲取單元格中的值持久化獲取出單元格中的數(shù)據(jù)后,最后就是用數(shù)據(jù)建立對象了。獲取行獲取單元格中的值持久化相關(guān)參考
問題描述
現(xiàn)需要批量導入數(shù)據(jù),數(shù)據(jù)以Excel形式導入。
POI介紹我選擇使用的是apache POI。這是有Apache軟件基金會開放的函數(shù)庫,他會提供API給java,使其可以對office文件進行讀寫。
我這里只需要使用其中的Excel部分。
實現(xiàn)首先,Excel有兩種格式,一種是.xls(03版),另一種是.xlsx(07版)。針對兩種不同的表格格式,POI對應提供了兩種接口。HSSFWorkbook和XSSFWorkbook
導入依賴處理版本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ù)擴展名,用不同的類來處理文件。
獲取表格數(shù)據(jù)獲取表格中的數(shù)據(jù)分為以下幾步:
1.獲取表格
2.獲取某一行
3.獲取這一行中的某個單元格
代碼實現(xiàn):
// 獲取第一個張表 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ù)建立對象了。
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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/73413.html
時間:2017年07月06日星期四說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學源碼:無學習源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 預備知識 基礎(chǔ)知識 struts2框架(上傳下載功能) xml解析技術(shù)(導入模板) JQuery EasyUI(前臺美觀) 課程目錄 實現(xiàn)方式 定制導入模版 導入文件 導...
摘要:需要的技術(shù)框架利用其上傳下載功能解析技術(shù)定制導入模板制作前臺與格式對應,版本低,兼容性好與格式對應組成的幾個概念工作薄工作表行記錄單元格創(chuàng)建中的的詳見如創(chuàng)建創(chuàng)建工作簿創(chuàng)建工作表創(chuàng)建第一行創(chuàng)建一個文件存盤名字性別男解析文件創(chuàng)建,讀取文件 需要的技術(shù) 1、strut2框架 利用其上傳下載功能2、xml解析技術(shù) 定制導入模板3、jquery UI 制作前臺 4、showImg(/i...
摘要:我想能不能像配置文件一樣可配置的導入導出,那樣使用起來就方便許多。配置和使用下面是員工信息模型。支持多種映射,使用英文逗號進行分割。導入時它會以分割前面的作為導入時使用的值,后面的作為導出時使用的值后面值進行逆推導出時同理。 1.前言 在工作時,遇到過這樣的需求,需要靈活的對工單進行導入或?qū)С觯郧白约阂沧鲞^,但使用不靈活繁瑣。我想能不能像配置文件一樣可配置的導入導出,那樣使用起來就方...
摘要:積分消費明細對賬單其中,有四個參數(shù),分別是,,,。導出讀取數(shù)據(jù)庫的信息,轉(zhuǎn)成。 public void detailExport() { String sourceSystem = getPara(source_system); String dataDate = getPara(data_date); Integer pointsType = get...
閱讀 3072·2023-04-26 00:49
閱讀 3733·2021-09-29 09:45
閱讀 1006·2019-08-29 18:47
閱讀 2752·2019-08-29 18:37
閱讀 2738·2019-08-29 16:37
閱讀 3301·2019-08-29 13:24
閱讀 1784·2019-08-27 10:56
閱讀 2354·2019-08-26 11:42