欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java利用poi讀取Excel詳解實(shí)現(xiàn)

 更新時(shí)間:2022年07月27日 11:03:07   作者:·~簡(jiǎn)單就好  
Apache POI 是用Java編寫(xiě)的免費(fèi)開(kāi)源的跨平臺(tái)的 Java API,Apache POI提供API給Java對(duì)Microsoft Office格式檔案讀和寫(xiě)的功能。POI為“Poor Obfuscation Implementation”的首字母縮寫(xiě),意為簡(jiǎn)潔版的模糊實(shí)現(xiàn)

前言

用戶可以直接讀取本地文件,也可以通過(guò)上傳文件的形式讀取excel

注意:poi對(duì)于讀取到空白行的時(shí)候,會(huì)默認(rèn)的認(rèn)為是最后一行,將不會(huì)再讀取空白行下面的數(shù)據(jù)

第一步導(dǎo)入依賴

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>

第二步實(shí)現(xiàn)測(cè)試類(lèi)+測(cè)試

  • 創(chuàng)建ReloadExcelTest .java文件
  • 此時(shí)找到excel的文件路徑,寫(xiě)文件全名:路徑+文件全名
  • 例:String reloadPath=“D:\ExcelTest\test.xlsx”;
  • windows路徑之間加\\
  • 測(cè)試
package tech.niua.admin.outputvalue.util.reloadexcel;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import tech.niua.admin.outputvalue.domain.OutputValue;
import java.io.IOException;
public class ReloadExcelTest {
    public static void readExcel(String reloadPath) throws IOException {
        //1.獲取工作簿
        XSSFWorkbook workbook = new XSSFWorkbook(reloadPath);
        //2.獲取工作表
        XSSFSheet sheet = workbook.getSheetAt(0);
        //獲取行
        //cell.setCellType(Cell.CELL_TYPE_STRING);    //將不同類(lèi)型的數(shù)據(jù)類(lèi)型轉(zhuǎn)為String
        int lastRowNum = sheet.getLastRowNum();
        for (int i = 1; i <= lastRowNum; i++) {
            OutputValue outputValueEntity = OutputValue.builder().build();
            Row rowValue = sheet.getRow(i);
            //獲取每一行中每一個(gè)單元格的數(shù)據(jù)的數(shù)據(jù)
            for (int j = 0; j < 4; j++) {
                DataFormatter formatter = new DataFormatter();
                String value = formatter.formatCellValue(rowValue.getCell(j));
                System.out.print(value+" ");
            }
            System.out.println();
        }
    }
}

注意:4.1.2版本的poi已經(jīng)不在使用cell.setCellType(Cell.CELL_TYPE_STRING);這種對(duì)于讀取到數(shù)據(jù)設(shè)置為String類(lèi)型的這種形式,將不再支持

改用為:

DataFormatter formatter = new DataFormatter();

String value = formatter.formatCellValue(rowValue.getCell(j));

此時(shí)value就是我們讀取到的值,可以做一個(gè)相應(yīng)的轉(zhuǎn)換存儲(chǔ)到集合或者對(duì)象的形式接收

測(cè)試

    public static void main(String[] args) throws IOException {
        String reloadPath="D:\\ExcelTest\\test.xlsx";
        ReloadExcelTest.readExcel(reloadPath);
    }

實(shí)際應(yīng)用

我們可以用集合的形式接收,或者以集合對(duì)象的形式接收,這樣就能夠?qū)τ谧x取到的數(shù)據(jù)做一個(gè)操作處理,以便于后面實(shí)現(xiàn)批量上傳功能。

----->批量上傳:前端頁(yè)面上傳excel文件,由系統(tǒng)自動(dòng)導(dǎo)入excel的數(shù)據(jù)到數(shù)據(jù)庫(kù):

到此這篇關(guān)于Java利用poi讀取Excel詳解實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java讀取Excel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Springboot項(xiàng)目使用html5的video標(biāo)簽完成視頻播放功能

    Springboot項(xiàng)目使用html5的video標(biāo)簽完成視頻播放功能

    這篇文章主要介紹了Springboot項(xiàng)目使用html5的video標(biāo)簽完成視頻播放功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Ubuntu搭建Java開(kāi)發(fā)環(huán)境筆記

    Ubuntu搭建Java開(kāi)發(fā)環(huán)境筆記

    這篇文章主要介紹了Ubuntu搭建Java開(kāi)發(fā)環(huán)境筆記,本文講解了JDK安裝、MyEclipse安裝及第一個(gè)Hello world程序等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • Springboot啟動(dòng)原理和自動(dòng)配置原理解析

    Springboot啟動(dòng)原理和自動(dòng)配置原理解析

    這篇文章主要介紹了Springboot啟動(dòng)原理和自動(dòng)配置原理解析,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Java實(shí)現(xiàn)的AES256加密解密功能示例

    Java實(shí)現(xiàn)的AES256加密解密功能示例

    這篇文章主要介紹了Java實(shí)現(xiàn)的AES256加密解密功能,結(jié)合完整實(shí)例形式分析了Java實(shí)現(xiàn)AES256加密解密功能的步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-02-02
  • drools中then部分的寫(xiě)法(推薦)

    drools中then部分的寫(xiě)法(推薦)

    本文介紹一下drools中then部分的寫(xiě)法,以及一些內(nèi)置的方法,比如insert/delete/modify等等。同時(shí)也介紹一下rule的繼承,和在when中實(shí)現(xiàn)if else if?等操作,感興趣的朋友跟隨小編一起看看吧
    2022-05-05
  • struts2實(shí)現(xiàn)多文件上傳

    struts2實(shí)現(xiàn)多文件上傳

    這篇文章主要為大家詳細(xì)介紹了struts2實(shí)現(xiàn)多文件上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • 引入mybatis-plus報(bào) Invalid bound statement錯(cuò)誤問(wèn)題的解決方法

    引入mybatis-plus報(bào) Invalid bound statement錯(cuò)誤問(wèn)題的解決方法

    這篇文章主要介紹了引入mybatis-plus報(bào) Invalid bound statement錯(cuò)誤問(wèn)題的解決方法,需要的朋友可以參考下
    2020-05-05
  • LeetCode程序員面試題之遞歸乘法

    LeetCode程序員面試題之遞歸乘法

    在Java中,遞歸乘法是一種簡(jiǎn)單而有效的方法,可以用來(lái)計(jì)算兩個(gè)數(shù)字的乘積。它的基本思想是:如果第一個(gè)數(shù)字是0,則乘積為0;如果第一個(gè)數(shù)字是1,則乘積為第二個(gè)數(shù)字;其他情況,則通過(guò)將第一個(gè)數(shù)字減1,并將第二個(gè)數(shù)字與自身相乘,來(lái)實(shí)現(xiàn)遞歸乘法。
    2023-02-02
  • SpringBoot熱部署設(shè)置方法詳解

    SpringBoot熱部署設(shè)置方法詳解

    在實(shí)際開(kāi)發(fā)中,每次修改代碼就需要重啟項(xiàng)目,重新部署,對(duì)于一個(gè)后端開(kāi)發(fā)者來(lái)說(shuō),重啟確實(shí)很難受。在java開(kāi)發(fā)領(lǐng)域,熱部署一直是一個(gè)難以解決的問(wèn)題,目前java虛擬機(jī)只能實(shí)現(xiàn)方法體的熱部署,對(duì)于整個(gè)類(lèi)的結(jié)構(gòu)修改,仍然需要重啟項(xiàng)目
    2022-10-10
  • Java ArrayList 數(shù)組之間相互轉(zhuǎn)換

    Java ArrayList 數(shù)組之間相互轉(zhuǎn)換

    本文通過(guò)代碼示例給大家講解arraylist轉(zhuǎn)化為數(shù)組,然后數(shù)組轉(zhuǎn)化為arraylist的相關(guān)資料,感興趣的朋友一起看看吧
    2015-11-11

最新評(píng)論