国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何使用 Java 靈活讀取 Excel 內(nèi)容?

這篇具有很好參考價(jià)值的文章主要介紹了如何使用 Java 靈活讀取 Excel 內(nèi)容?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在日常工作和學(xué)習(xí)中,我們經(jīng)常需要從 Excel 文件中讀取數(shù)據(jù)。對(duì)于少量數(shù)據(jù),手動(dòng)復(fù)制和粘貼可能是可行的,但是對(duì)于大量的數(shù)據(jù),這種方法會(huì)變得非常低效。在這種情況下,使用 Java 程序自動(dòng)讀取 Excel 文件中的數(shù)據(jù)將是更好的選擇。

本教程將介紹如何使用 Java 程序讀取 Excel 文件中的數(shù)據(jù),包括以下幾個(gè)方面:

  1. 了解 Excel 文件格式
  2. 選擇 Java 的 Excel 文件讀取庫
  3. 讀取 Excel 文件中的數(shù)據(jù)
  4. 處理 Excel 文件中的不同數(shù)據(jù)類型
  5. 使用 Java 程序?qū)С?Excel 文件

讓我們開始吧!


1、了解 Excel 文件格式

在開始編寫 Java 程序讀取 Excel 文件之前,我們需要了解 Excel 文件格式。Excel 文件是基于 Microsoft 的 OLE2 格式的,這個(gè)格式將文件組織成一系列的 "容器" 和 "對(duì)象"。Excel 文件的主要容器是 Workbook,它包含一個(gè)或多個(gè) Sheet。每個(gè) Sheet 包含一組行和列,這些行和列組成了一個(gè)二維的單元格數(shù)組。每個(gè)單元格可以包含文本、數(shù)字、日期、布爾值等不同的數(shù)據(jù)類型。

2、選擇 Java 的 Excel 文件讀取庫

在 Java 中,有多個(gè)庫可以用于讀取 Excel 文件。這些庫包括 Apache POI、JExcelApi、EasyXLS、JXL 等。在本教程中,我們將使用 Apache POI 庫。

Apache POI 是一個(gè) Java API,用于操作 Microsoft 文檔格式,包括 Word、Excel 和 PowerPoint。它提供了一組 Java 類,可以用于創(chuàng)建、讀取和修改 Microsoft 文檔。

3、讀取 Excel 文件中的數(shù)據(jù)

在本節(jié)中,我們將演示如何使用 Apache POI 庫讀取 Excel 文件中的數(shù)據(jù)。

在開始之前,我們需要將 Apache POI 庫添加到項(xiàng)目的依賴中。您可以通過 Maven 或 Gradle 等構(gòu)建工具將它們添加到項(xiàng)目中。

以下是 Maven 項(xiàng)目的 pom.xml 文件中添加 Apache POI 庫的示例代碼:

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

以下是 Gradle 項(xiàng)目的 build.gradle 文件中添加 Apache POI 庫的示例代碼:

dependencies {
    implementation 'org.apache.poi:poi:4.1.2'
}

接下來,我們將演示如何使用 Apache POI 庫讀取 Excel 文件中的數(shù)據(jù)。

首先,我們需要?jiǎng)?chuàng)建一個(gè) Workbook 對(duì)象,該對(duì)象表示整個(gè) Excel 文件。在 Apache POI 中,Workbook 對(duì)象有三種不同的類型:HSSFWorkbook 表示一個(gè) .xls 文件,XSSFWorkbook 表示一個(gè) .xlsx 文件,SXSSFWorkbook 表示一個(gè)大型 .xlsx 文件。我們可以使用 WorkbookFactory.create() 方法根據(jù)文件的類型創(chuàng)建一個(gè) Workbook 對(duì)象。以下是創(chuàng)建一個(gè) XSSFWorkbook 對(duì)象的示例代碼:

FileInputStream file = new FileInputStream(new File("path/to/excel/file.xlsx"));
Workbook workbook = WorkbookFactory.create(file);

接下來,我們可以獲取一個(gè) Sheet 對(duì)象,該對(duì)象表示 Excel 文件中的一個(gè)工作表。在 Apache POI 中,Sheet 對(duì)象由 Workbook 對(duì)象的 getSheet() 方法返回。以下是獲取名為 "Sheet1" 的 Sheet 對(duì)象的示例代碼:

Sheet sheet = workbook.getSheet("Sheet1");

一旦我們獲取了 Sheet 對(duì)象,我們就可以遍歷其中的每一行和每一列,以讀取其中的單元格數(shù)據(jù)。以下是遍歷 Sheet 對(duì)象中的所有單元格并輸出單元格值的示例代碼:

Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
    Row row = rowIterator.next();
    Iterator<Cell> cellIterator = row.cellIterator();
    while (cellIterator.hasNext()) {
        Cell cell = cellIterator.next();
        switch (cell.getCellType()) {
            case STRING:
                System.out.print(cell.getStringCellValue() + "\t");
                break;
            case NUMERIC:
                System.out.print(cell.getNumericCellValue() + "\t");
                break;
            case BOOLEAN:
                System.out.print(cell.getBooleanCellValue() + "\t");
                break;
            default:
                System.out.print("\t");
        }
    }
    System.out.println();
}

上述代碼中,我們使用了一個(gè)嵌套的迭代器來遍歷每一行和每一列。在每個(gè)單元格中,我們使用 switch 語句根據(jù)不同的數(shù)據(jù)類型執(zhí)行不同的操作。

4、處理 Excel 文件中的不同數(shù)據(jù)類型

在 Excel 文件中,單元格可以包含不同的數(shù)據(jù)類型,包括字符串、數(shù)字、日期和布爾值等。當(dāng)我們讀取單元格中的數(shù)據(jù)時(shí),我們需要知道單元格中的數(shù)據(jù)類型,以正確地處理它們。

在 Apache POI 中,我們可以使用 Cell.getCellType() 方法獲取單元格的數(shù)據(jù)類型。該方法返回 CellType 枚舉類型的值,可以使用 switch 語句根據(jù)不同的枚舉值執(zhí)行不同的操作。

以下是使用 switch 語句處理不同數(shù)據(jù)類型的示例代碼:

switch (cell.getCellType()) {
    case STRING:
        System.out.print(cell.getStringCellValue() + "\t");
        break;
    case NUMERIC:
        if (DateUtil.isCellDateFormatted(cell)) {
            System.out.print(cell.getDateCellValue() + "\t");
        } else {
            System.out.print(cell.getNumericCellValue() + "\t");
        }
        break;
    case BOOLEAN:
        System.out.print(cell.getBooleanCellValue() + "\t");
        break;
    default:
        System.out.print("\t");
}

在上述示例代碼中,我們首先檢查單元格的數(shù)據(jù)類型是否為字符串。如果是字符串,我們使用 getStringCellValue() 方法獲取字符串值。如果單元格的數(shù)據(jù)類型為數(shù)字,我們還需要檢查單元格是否包含日期。如果是日期,我們使用 getDateCellValue() 方法獲取日期值,否則我們使用 getNumericCellValue() 方法獲取數(shù)字值。

5、使用 Java 程序?qū)С?Excel 文件

除了讀取 Excel 文件中的數(shù)據(jù)外,我們還可以使用 Java 程序創(chuàng)建和導(dǎo)出 Excel 文件。Apache POI 提供了 HSSFWorkbook 和 XSSFWorkbook 兩個(gè)類,用于創(chuàng)建和操作 Excel 文件。

HSSFWorkbook 類用于操作舊版的 .xls 格式的 Excel 文件,而 XSSFWorkbook 類用于操作新版的 .xlsx 格式的 Excel 文件。我們可以根據(jù)需要選擇合適的類來創(chuàng)建和導(dǎo)出 Excel 文件。

以下是創(chuàng)建和導(dǎo)出 Excel 文件的一般步驟:

  1. 創(chuàng)建一個(gè) Workbook 對(duì)象,表示整個(gè) Excel 文件。
  2. 創(chuàng)建一個(gè) Sheet 對(duì)象,表示 Excel 文件中的一個(gè)工作表。
  3. 創(chuàng)建 Row 和 Cell 對(duì)象,表示 Excel 文件中的行和列。
  4. 為每個(gè)單元格設(shè)置數(shù)據(jù)和樣式。
  5. 將 Workbook 對(duì)象寫入文件或輸出流中。

下面,讓我們來看一些示例代碼,演示如何使用 Java 程序創(chuàng)建和導(dǎo)出 Excel 文件。

  1. 創(chuàng)建一個(gè) XSSFWorkbook 對(duì)象

以下是創(chuàng)建一個(gè) XSSFWorkbook 對(duì)象的示例代碼:

Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
  1. 創(chuàng)建行和單元格

以下是創(chuàng)建行和單元格的示例代碼:

Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("Hello, World!");
  1. 設(shè)置單元格樣式

在 Excel 文件中,我們可以為單元格設(shè)置不同的樣式,包括字體、顏色、對(duì)齊方式等。以下是設(shè)置單元格樣式的示例代碼:

CellStyle style = workbook.createCellStyle();
Font font = workbook.createFont();
font.setBold(true);
style.setFont(font);
cell.setCellStyle(style);

在上述示例代碼中,我們首先使用 createCellStyle() 方法創(chuàng)建一個(gè)單元格樣式對(duì)象。然后,我們使用 createFont() 方法創(chuàng)建一個(gè)字體對(duì)象,并設(shè)置其屬性。最后,我們將樣式應(yīng)用于單元格。

  1. 導(dǎo)出 Excel 文件

導(dǎo)出 Excel 文件時(shí),我們可以將 Workbook 對(duì)象寫入文件或輸出流中。以下是將 Workbook 對(duì)象寫入文件的示例代碼:

FileOutputStream fileOut = new FileOutputStream("path/to/excel/file.xlsx");
workbook.write(fileOut);
fileOut.close();

在上述示例代碼中,我們首先使用 FileOutputStream 類創(chuàng)建一個(gè)文件輸出流對(duì)象。然后,我們使用 write() 方法將 Workbook 對(duì)象寫入文件中。最后,我們關(guān)閉文件輸出流。

除了寫入文件,我們還可以將 Workbook 對(duì)象輸出到網(wǎng)絡(luò)流中,以便在瀏覽器中下載 Excel 文件。以下是將 Workbook 對(duì)象輸出到網(wǎng)絡(luò)流中的示例代碼:

response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=\"excel_file.xlsx\"");
OutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
outputStream.close();

在上述示例代碼中,我們首先設(shè)置 HTTP 響應(yīng)的內(nèi)容類型和文件名。然后,我們使用 getOutputStream() 方法獲取網(wǎng)絡(luò)輸出流對(duì)象。最后,我們使用 write() 方法將 Workbook 對(duì)象寫入網(wǎng)絡(luò)流中,并關(guān)閉輸出流。

完整示例代碼

下面是一個(gè)完整的示例代碼,演示如何使用 Java 程序讀取和導(dǎo)出 Excel 文件:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelUtils {

    public static void readExcel(String fileName) throws IOException {
        // 創(chuàng)建文件輸入流
        FileInputStream fileInputStream = new FileInputStream(new File(fileName));

        // 創(chuàng)建工作簿對(duì)象
        Workbook workbook = WorkbookFactory.create(fileInputStream);

        // 獲取第一個(gè)工作表
        Sheet sheet = workbook.getSheetAt(0);

        // 遍歷工作表中的所有行和單元格
        for (Row row : sheet) {
            for (Cell cell : row) {
                // 根據(jù)單元格的類型讀取數(shù)據(jù)
                switch (cell.getCellType()) {
                    case STRING:
                        System.out.print(cell.getStringCellValue() + "\t");
                        break;
                    case NUMERIC:
                        System.out.print(cell.getNumericCellValue() + "\t");
                        break;
                    case BOOLEAN:
                        System.out.print(cell.getBooleanCellValue() + "\t");
                        break;
                    case FORMULA:
                        System.out.print(cell.getCellFormula() + "\t");
                        break;
                    case BLANK:
                        System.out.print("\t");
                        break;
                    default:
                        System.out.print("\t");
                }
            }
            System.out.println();
        }

        // 關(guān)閉文件輸入流
        fileInputStream.close();
    }

    public static void writeExcel(String fileName) throws IOException {
        // 創(chuàng)建工作簿對(duì)象
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Sheet1");

        // 創(chuàng)建行和單元格
        Row row = sheet.createRow(0);
        Cell cell = row.createCell(0);
        cell.setCellValue("Hello, World!");

        // 設(shè)置單元格樣式
        CellStyle style = workbook.createCellStyle();
        Font font = workbook.createFont();
        font.setBold(true);
        style.setFont(font);
        cell.setCellStyle(style);

        // 導(dǎo)出 Excel 文件
        FileOutputStream fileOut = new FileOutputStream(fileName);
        workbook.write(fileOut);
        fileOut.close();
    }
}

使用該類,我們可以方便地讀取和導(dǎo)出 Excel 文件,如下所示:

public static void main(String[] args) throws IOException {
    String fileName = "path/to/excel/file.xlsx";

    // 讀取 Excel 文件
    ExcelUtils.readExcel(fileName);

    // 導(dǎo)出 Excel 文件
    ExcelUtils.writeExcel(fileName);
}

6、結(jié)論

本文介紹了如何使用 Java 程序靈活讀取和導(dǎo)出 Excel 文件。我們首先介紹了 Apache POI 庫,它是 Java 操作 Office 文檔的一個(gè)強(qiáng)大的工具。然后,我們演示了如何使用 POI 庫讀取 Excel 文件,并解釋了如何根據(jù)單元如何設(shè)置單元格樣式。最后,我們提供了一個(gè)完整的示例代碼,演示了如何使用 ExcelUtils 類來讀取和導(dǎo)出 Excel 文件。

Java 程序讀取和導(dǎo)出 Excel 文件是一項(xiàng)非常實(shí)用的技能,尤其是在需要處理大量數(shù)據(jù)的項(xiàng)目中。使用 Apache POI 庫,我們可以方便地讀取和寫入 Excel 文件,這可以大大提高我們的工作效率。

在實(shí)際應(yīng)用中,我們需要根據(jù)具體的需求來選擇讀取和寫入 Excel 文件的方法,以達(dá)到最好的效果。

參考文獻(xiàn)

  • Apache POI 官方文檔. (??https://poi.apache.org/??)

?文章來源地址http://www.zghlxwxcb.cn/news/detail-725545.html

到了這里,關(guān)于如何使用 Java 靈活讀取 Excel 內(nèi)容?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java中靈活獲取excel中的數(shù)據(jù)

    Java中靈活獲取excel中的數(shù)據(jù)

    在java當(dāng)中獲取excel數(shù)據(jù),獲取每一列數(shù)據(jù)、每一行數(shù)據(jù) 在這里例子是將每一行數(shù)據(jù)獲取出來,并帶著表頭數(shù)據(jù)返回。 代碼: 具體實(shí)現(xiàn)邏輯在代碼注釋當(dāng)中可以參見。 excel例子: 代碼執(zhí)行: ??將執(zhí)行結(jié)果格式化一下,更直觀。 ?我們只要能獲取 行列 數(shù)據(jù),在就可以根據(jù)自

    2024年02月15日
    瀏覽(27)
  • 使用java解析和讀取excel表格(EasyExcel的簡(jiǎn)單使用)

    使用java解析和讀取excel表格(EasyExcel的簡(jiǎn)單使用)

    ** ** Apache POI、JXL、Alibaba EasyExcel等。其中Apache POI基于DOM方式進(jìn)行解析,將文件直接加載內(nèi)存,所以速度較快,適合Excel文件數(shù)據(jù)量不大的應(yīng)用場(chǎng)景; EasyExcel是一個(gè)基于Java的、快速、簡(jiǎn)潔、解決大文件內(nèi)存溢出的Excel處理工具。他能讓你在不用考慮性能、內(nèi)存的等因素的情況下

    2024年01月16日
    瀏覽(19)
  • Python-使用openpyxl讀取excel內(nèi)容

    Python-使用openpyxl讀取excel內(nèi)容

    將下面的excel中的寄存器表單讀入并構(gòu)建一個(gè)字典 wb.sheetnames 會(huì)返回一個(gè)列表,列表中是每個(gè)工作表的名稱,數(shù)據(jù)類型為str。執(zhí)行上述代碼后ws就是獲取的工作表。 使用sheet.cell會(huì)返回cell對(duì)象,再使用cell.value才能返回單元格的值,執(zhí)行上述代碼的結(jié)果如下: 按行讀取可以用

    2024年03月12日
    瀏覽(24)
  • Java 讀取excel文件

    先導(dǎo)入依賴: 1、獲取想要上傳excel文件的路徑 2、獲得路徑后,通過路徑定位生成數(shù)據(jù)流,使用FileInputStream方法讀取路徑對(duì)應(yīng)文件的原始字節(jié)流。 3、使用ExcelUtils工具類讀取 字節(jié)流 + 路徑。 4、ExcelUtils工具類對(duì)數(shù)據(jù)進(jìn)行處理,因?yàn)楸砀裼行泻土?,所以處理完?shù)據(jù)使用二維集合

    2024年02月04日
    瀏覽(33)
  • java讀取Excel導(dǎo)入去除空行

    java讀取Excel導(dǎo)入去除空行

    問題: 在Java讀取Excel導(dǎo)入操作時(shí), sheet.getLastRowNum()會(huì)統(tǒng)計(jì)帶有格式的空白行,導(dǎo)致獲取的最大行數(shù)不準(zhǔn)確,數(shù)據(jù)導(dǎo)入失敗。 解決: 在操作過程中刪除存在樣式的空白行 可通過將空白行(內(nèi)容為空,但是存在樣式)進(jìn)行sheet.removeRow刪除后 再調(diào)用getLastRowNum()進(jìn)行行數(shù)統(tǒng)計(jì),getAcc

    2024年02月15日
    瀏覽(26)
  • java讀取excel中的數(shù)據(jù)

    首先導(dǎo)入相關(guān)的依賴: 測(cè)試代碼: 數(shù)據(jù)打印到控制臺(tái)的效果:

    2024年02月06日
    瀏覽(18)
  • JAVA 讀取jar包中excel模板

    JAVA 讀取jar包中excel模板

    1、在resources路徑下,新建report文件夾,放入excel模板 2、配置文件中的目錄,分隔符使用 / 3、使用getResourceAsStream()讀取

    2024年02月11日
    瀏覽(18)
  • Java EasyExcel高效讀取保存excel文件

    阿里開源出一款易上手,且比較節(jié)省內(nèi)存的Excel操作框架:EasyExcel。EasyExcel是一行一行進(jìn)行讀取,再大的excel也不會(huì)出現(xiàn)OOM。 Java解析、生成Excel比較有名的框架有Apache poi、jxl。但他們都存在一個(gè)嚴(yán)重的問題就是非常的耗內(nèi)存,poi有一套SAX模式的API可以一定程度的解決一些內(nèi)存

    2024年02月16日
    瀏覽(26)
  • java 讀取excel圖片導(dǎo)入(親測(cè)有效)

    從excel文件中獲取圖片(兼容新老版本) 從sheet頁中獲取圖片及圖片位置 main方法-獲取excel文件中的圖片下載到本地 遇到問題 :圖片導(dǎo)入解析報(bào)錯(cuò)異常java.lang.ClassCastException: org.apache.poi.xssf.usermodel. XSSFSimpleShape cannot be cast to org.apache.poi.xssf.usermodel.XSSFPicture問題 解決方法 :經(jīng)過排

    2024年02月12日
    瀏覽(22)
  • [excel與dict] python 讀取excel內(nèi)容并放入字典、將字典內(nèi)容寫入 excel文件

    一 讀取excel內(nèi)容、并放入字典 1 讀取excel文件 2 讀取value,舍棄行號(hào) 3 讀取為字典 一 讀取excel內(nèi)容、并放入字典(完整代碼) 二、將字典內(nèi)容寫入 excel文件 1 假設(shè)已有字典內(nèi)容為: 即student列表里有4個(gè)字典, 第一個(gè)字典里面有3對(duì)key-value \\\"num\\\": 1, \\\"name\\\": \\\"cod1\\\", \\\"wfm\\\": 0.1 2 導(dǎo)入Workb

    2024年02月04日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包