App下載

java讀取本地excel 文件,將excel內(nèi)容轉(zhuǎn)換成java對象

進餐小能手 2021-11-25 15:24:53 瀏覽數(shù) (6280)
反饋

在技術(shù)的高速發(fā)展中我們學(xué)習(xí)編程不僅僅是為了制作相關(guān)的應(yīng)用程序了,我們開始的使用編程來進行文件之間的操作,那么今天就來和大家分享有關(guān)于,java讀取本地excel 文件,將excel內(nèi)容轉(zhuǎn)換成java對象這方面的相關(guān)內(nèi)容。我們的操作工具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文件

如下所示:

1

3.書寫代碼實現(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) {  

                 // 返回數(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 方法讀取日期格式即可

以上就是有關(guān)于“java讀取本地excel 文件”這方面的相關(guān)內(nèi)容,更多有關(guān)于 java 文件的相關(guān)內(nèi)容我們可以在 java教程中查閱。

更多快速學(xué)習(xí)Java的方法大家可以看看下面的內(nèi)容:

視頻教程:

Java快速入門100集_新手自學(xué)教程

Java開發(fā)環(huán)境搭建

Java入門:JSP、Servlet精講

Java:23天零基礎(chǔ)完全入門

Java基礎(chǔ)入門到框架實踐

教程:

Java 教程

java常用技巧

微課:

Java入門課程

Java入門體驗課程


0 人點贊