溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java如何讀取本地excel文件并將excel內(nèi)容轉(zhuǎn)換成java對(duì)象

發(fā)布時(shí)間:2022-01-20 17:33:19 來(lái)源:億速云 閱讀:914 作者:kk 欄目:開發(fā)技術(shù)

小編今天帶大家了解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 方法讀取日期格式即可

Java的優(yōu)點(diǎn)是什么

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)站的支持!

向AI問一下細(xì)節(jié)

免責(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)容。

AI