You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将按列读取Excel的Java POI代码修改为按行读取?

按行读取Excel的修改方案

没问题,我帮你把这段代码调整为按行读取的版本,核心是修改数组的维度结构和赋值时的索引对应关系,还顺手优化了原代码的潜在空指针问题,具体修改后的代码如下:

XSSFSheet TcSheet = workbook.getSheet(TestCaseName);
int TcRow = TcSheet.getLastRowNum();
int TcCol = TcSheet.getRow(1).getLastCellNum();
// 调整数组维度:行数作为第一维度,列数作为第二维度,对应按行存储
data = new Object[TcRow + 1][TcCol];
for (int i = 0; i <= TcRow; i++) {
    for (int j = 0; j < TcCol; j++) {
        Cell cell = TcSheet.getRow(i).getCell(j);
        // 处理空单元格,避免空指针异常
        if (cell != null) {
            cell.setCellType(Cell.CELL_TYPE_STRING);
            // 按行映射:第i行第j列的单元格值存入data[i][j]
            data[i][j] = cell.getStringCellValue();
        } else {
            // 空单元格可根据需求赋值为空字符串或null
            data[i][j] = "";
        }
    }
}

关键修改点说明

  • 数组维度重构:原代码是[列数][行数]的列优先结构,现在改成[行数][列数]的行优先结构,这样data[i]直接对应Excel中的第i行数据,完全贴合按行读取的逻辑。
  • 赋值索引调整:把原代码的data[j][i]改为data[i][j],确保单元格的行号i对应数组的第一维度,列号j对应第二维度,数据映射关系更直观。
  • 空单元格防护:新增了空单元格的判断逻辑,避免Excel中存在空单元格时抛出空指针异常(原代码没有处理这个场景,属于潜在bug)。
  • 命名规范优化:把原代码中大写的Cell变量名改成小写cell,符合Java的命名规范,可读性更好。

内容的提问来源于stack exchange,提问作者Prasanna Ananthakrishnan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:33:59