您好,登錄后才能下訂單哦!
小編今天帶大家了解java如何讀取本地excel文件并將excel內容轉換成java對象,文中知識點介紹的非常詳細。覺得有幫助的朋友可以跟著小編一起瀏覽文章的內容,希望能夠幫助更多想解決這個問題的朋友找到問題的答案,下面跟著小編一起深入學習“java如何讀取本地excel文件并將excel內容轉換成java對象”的知識吧。
在技術的高速發展中我們學習編程不僅僅是為了制作相關的應用程序了,我們開始的使用編程來進行文件之間的操作,那么今天就來和大家分享有關于,java讀取本地excel 文件,將excel內容轉換成java對象這方面的相關內容。我們的操作工具eclipse + maven。
下面是我們的一個步驟:
1. java操作excel所使用的jar包 poi-ooxml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.14</version>
</dependency>
2.在本地建立一個excel文件
3.書寫代碼實現
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導入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(); } } //導入Excel數據 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文件中的所有行數 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) { // 返回數值類型的值 return String.valueOf(xSSFCell.getNumericCellValue()); } else { // 返回字符串類型的值 return String.valueOf(xSSFCell.getStringCellValue()); } }
輸出結果:
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日期設置格式為 2017/09/08
其次使用 getDateCellValue 方法讀取日期格式即可
1. 簡單,只需理解基本的概念,就可以編寫適合于各種情況的應用程序;2. 面向對象;3. 分布性,Java是面向網絡的語言;4. 魯棒性,java提供自動垃圾收集來進行內存管理,防止程序員在管理內存時容易產生的錯誤。;5. 安全性,用于網絡、分布環境下的Java必須防止病毒的入侵。6. 體系結構中立,只要安裝了Java運行時系統,就可在任意處理器上運行。7. 可移植性,Java可以方便地移植到網絡上的不同機器。8.解釋執行,Java解釋器直接對Java字節碼進行解釋執行。
感謝大家的閱讀,以上就是“java如何讀取本地excel文件并將excel內容轉換成java對象”的全部內容了,學會的朋友趕緊操作起來吧。相信億速云小編一定會給大家帶來更優質的文章。謝謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。