您好,登錄后才能下訂單哦!
小編今天帶大家了解java如何讀取本地excel文件并將excel內(nèi)容轉(zhuǎn)換成java對(duì)象,文中知識(shí)點(diǎn)介紹的非常詳細(xì)。覺得有幫助的朋友可以跟著小編一起瀏覽文章的內(nèi)容,希望能夠幫助更多想解決這個(gè)問題的朋友找到問題的答案,下面跟著小編一起深入學(xué)習(xí)“java如何讀取本地excel文件并將excel內(nèi)容轉(zhuǎn)換成java對(duì)象”的知識(shí)吧。
在技術(shù)的高速發(fā)展中我們學(xué)習(xí)編程不僅僅是為了制作相關(guān)的應(yīng)用程序了,我們開始的使用編程來(lái)進(jìn)行文件之間的操作,那么今天就來(lái)和大家分享有關(guān)于,java讀取本地excel 文件,將excel內(nèi)容轉(zhuǎn)換成java對(duì)象這方面的相關(guān)內(nèi)容。我們的操作工具eclipse + maven。
下面是我們的一個(gè)步驟:
1. java操作excel所使用的jar包 poi-ooxml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.14</version>
</dependency>
2.在本地建立一個(gè)excel文件
3.書寫代碼實(shí)現(xiàn)
package com.daojia.certify.excelimport;import java.io.FileInputStream;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.poi.xssf.usermodel.XSSFCell;import org.apache.poi.xssf.usermodel.XSSFRow;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import com.alibaba.fastjson.JSON;import com.daojia.certify.util.DateBuilder;/** * @Description : TODO導(dǎo)入excel * @date : Mar 31, 2018 5:17:14 PM */public class ExcelImport { public static void main(String args[]){ ExcelImport excelImport = new ExcelImport(); try { excelImport.importExcelAction(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } //導(dǎo)入Excel數(shù)據(jù) public void importExcelAction() throws Exception { //文件路徑 String filePath ="C:/Users/daojia/Desktop/test.xlsx"; XSSFWorkbook wookbook = new XSSFWorkbook(new FileInputStream(filePath)); XSSFSheet sheet = wookbook.getSheet("Sheet1"); //獲取到Excel文件中的所有行數(shù) int rows = sheet.getPhysicalNumberOfRows(); //遍歷行 List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); for (int i = 1; i < rows; i++) { // 讀取左上端單元格 XSSFRow row = sheet.getRow(i); // 行不為空 if (row != null) { Map<String,Object> map = new HashMap<String,Object>(); //獲取到Excel文件中的所有的列 int cells = row.getPhysicalNumberOfCells(); //姓名 XSSFCell nameCell =row.getCell(1); String name = getValue(nameCell); //性別 XSSFCell sexCell =row.getCell(2); String sex = getValue(sexCell); //年齡 XSSFCell ageCell =row.getCell(3); String age = getValue(ageCell); //出生年月 XSSFCell birthCell =row.getCell(4); String birth = DateBuilder.convertDateToString(birthCell.getDateCellValue(), "yyyy-MM-dd"); map.put("name", name); map.put("sex", sex); map.put("age", age); map.put("birth", birth); list.add(map); } } System.out.println("list = "+JSON.toJSONString(list)); } private String getValue(XSSFCell xSSFCell){ if(null == xSSFCell){ return ""; } if (xSSFCell.getCellType() == xSSFCell.CELL_TYPE_BOOLEAN) { // 返回布爾類型的值 return String.valueOf(xSSFCell.getBooleanCellValue()); } else if (xSSFCell.getCellType() == xSSFCell.CELL_TYPE_NUMERIC) { // 返回?cái)?shù)值類型的值 return String.valueOf(xSSFCell.getNumericCellValue()); } else { // 返回字符串類型的值 return String.valueOf(xSSFCell.getStringCellValue()); } }
輸出結(jié)果:
list = [{"age":"","birth":"1991-09-03","name":"張三","sex":"男"},
{"age":"23.0","birth":"1992-09-03","name":"李四","sex":"女"},
{"age":"34.0","birth":"1993-09-03","name":"王五","sex":"男"},
{"age":"54.0","birth":"1994-09-03","name":"趙六","sex":"女"}]
注意:
1.如果excel格式為 .xlsx ,使用以上方法,如果excel格式為 .xls 以上的 XSSFCell 變成 HSSFCell
2.excel中的日期處理
首先將excel日期設(shè)置格式為 2017/09/08
其次使用 getDateCellValue 方法讀取日期格式即可
1. 簡(jiǎn)單,只需理解基本的概念,就可以編寫適合于各種情況的應(yīng)用程序;2. 面向?qū)ο螅?. 分布性,Java是面向網(wǎng)絡(luò)的語(yǔ)言;4. 魯棒性,java提供自動(dòng)垃圾收集來(lái)進(jìn)行內(nèi)存管理,防止程序員在管理內(nèi)存時(shí)容易產(chǎn)生的錯(cuò)誤。;5. 安全性,用于網(wǎng)絡(luò)、分布環(huán)境下的Java必須防止病毒的入侵。6. 體系結(jié)構(gòu)中立,只要安裝了Java運(yùn)行時(shí)系統(tǒng),就可在任意處理器上運(yùn)行。7. 可移植性,Java可以方便地移植到網(wǎng)絡(luò)上的不同機(jī)器。8.解釋執(zhí)行,Java解釋器直接對(duì)Java字節(jié)碼進(jìn)行解釋執(zhí)行。
感謝大家的閱讀,以上就是“java如何讀取本地excel文件并將excel內(nèi)容轉(zhuǎn)換成java對(duì)象”的全部?jī)?nèi)容了,學(xué)會(huì)的朋友趕緊操作起來(lái)吧。相信億速云小編一定會(huì)給大家?guī)?lái)更優(yōu)質(zhì)的文章。謝謝大家對(duì)億速云網(wǎng)站的支持!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。