引言

在开发过程中,我们经常会遇到需要读取Excel文件并将数据转换成Java对象的需求。 POI是一个强大的库,它提供了读取和写入 格式文件的功能java读写文件,包括Excel。本文将指导你如何使用 POI读取Excel文件java读写文件,并将数据转换为List>格式,便于进一步的数据处理和分析。

准备工作

首先,确保你的项目中包含了 POI的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖:


        
            org.apache.poi
            poi-ooxml
            5.2.2 
        
        
            org.apache.poi
            poi
            5.2.2 
        
        
            org.apache.logging.log4j
            log4j-api
            2.17.1 
        
        
            org.apache.logging.log4j
            log4j-core
            2.17.1 
        
        
            commons-io
            commons-io
            2.11.0 
        
    

步骤详解

下面是使用 POI读取Excel文件的具体步骤:

package com.xsz.programmingarsenal.utils;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ExcelReader {
    public static void main(String[] args) {
        try {
            FileInputStream fis = new FileInputStream(new File("C:\tmp\test.xlsx"));
            Workbook workbook = new XSSFWorkbook(fis);
            Sheet sheet = workbook.getSheetAt(0); // 假设我们只读取第一个工作表
            List<Map> data = new ArrayList();
            // 获取第一行作为列头
            Row headerRow = sheet.getRow(0);
            if (headerRow != null) {
                for (int i = 1; i <= sheet.getLastRowNum(); i++) { // 从第二行开始读取数据
                    Row row = sheet.getRow(i);
                    if (row != null) {
                        Map rowData = new HashMap();
                        for (Cell cell : headerRow) {
                            int colIndex = cell.getColumnIndex();
                            Cell dataCell = row.getCell(colIndex);
                            if (dataCell != null) {
//                                rowData.put(cell.getStringCellValue(), dataCell.getStringCellValue());
                                rowData.put(getStringValue(cell), getStringValue(dataCell));
                            }
                        }
                        data.add(rowData);
                    }
                }
            }
            // 关闭资源
            workbook.close();
            fis.close();
            // 打印结果
            System.out.println(data);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static  String getStringValue(Cell cell ){
        CellType cellType = cell.getCellType();
        String cellValue = null;
        switch (cellType) {
            case STRING:
                cellValue = cell.getStringCellValue();
                break;
            case NUMERIC:
                if (DateUtil.isCellDateFormatted(cell)) {
                    // 如果是日期格式的数值,则转换为日期字符串
                    cellValue = cell.getDateCellValue().toString();
                } else {
                    // 否则,转换为数字字符串
                    cellValue = String.valueOf(cell.getNumericCellValue());
                }
                break;
            case BOOLEAN:
                cellValue = String.valueOf(cell.getBooleanCellValue());
                break;
            case FORMULA:
                // 处理公式单元格
                cellValue = cell.getCellFormula();
                break;
            case BLANK:
                cellValue = ""; // 或者null,取决于你的需求
                break;
            case ERROR:
                cellValue = "ERROR"; // 或者抛出异常,取决于你的需求
                break;
            default:
                throw new IllegalStateException("Unexpected cell type: " + cellType);
        }
        return  cellValue;
// 现在你可以安全地使用cellValue了
    }
}

测试

测试数据

读写文件权限_读写文件权限在哪设置_java读写文件

结果

读写文件权限在哪设置_读写文件权限_java读写文件

结语

通过上述步骤,你现在已经掌握了如何使用Java和 POI库读取Excel文件,并将数据转换为List>格式的方法。这种方法非常适合需要对Excel数据进行进一步处理和分析的场景。希望这篇博客能帮助你在日常开发中更加高效地处理Excel文件。

读写文件权限_java读写文件_读写文件权限在哪设置


限时特惠:
本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情

站长微信:Jiucxh

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注