java分批读取excel中数据处理


 
java分批读取excel中数据处理

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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 @   红尘沙漏  阅读(159)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2022-07-05 Spring Boot设置上传文件大小
2022-07-05 SpringBoot文件上传
点击右上角即可分享
微信分享提示