java分批读取excel中数据处理


 
java分批读取excel中数据处理

在Java中,可以使用Apache POI库来读取和处理Excel数据。以下是一个简单的例子,展示了如何分批次读取Excel文件中的数据。

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
 
public class ExcelBatchRead {
    public static void main(String[] args) throws IOException {
        FileInputStream inputStream = new FileInputStream("example.xlsx");
        Workbook workbook = new XSSFWorkbook(inputStream);
        Sheet sheet = workbook.getSheetAt(0);
 
        int batchSize = 100; // 设定批次大小
        int batchStart = 0; // 当前批次开始行
        int batchEnd = batchStart + batchSize; // 当前批次结束行
 
        while (batchStart < sheet.getLastRowNum()) {
            // 处理当前批次的数据
            for (int i = batchStart; i < batchEnd && i < sheet.getLastRowNum(); i++) {
                Row row = sheet.getRow(i);
                if (row != null) {
                    // 读取行数据并处理
                    Iterator<Cell> cellIterator = row.iterator();
                    while (cellIterator.hasNext()) {
                        Cell cell = cellIterator.next();
                        // 读取单元格数据
                        switch (cell.getCellTypeEnum()) {
                            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;
                            default: break;
                        }
                    }
                    System.out.println();
                }
            }
 
            // 更新批次边界
            batchStart += batchSize;
            batchEnd = batchStart + batchSize;
        }
 
        workbook.close();
        inputStream.close();
    }
}

  

posted @ 2024-07-05 10:47  红尘沙漏  阅读(92)  评论(0编辑  收藏  举报