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

如何在Python中通过循环从Excel读取数据构建二维数组?

Excel多行多列数据转二维数组解决方案

你当前的代码每次循环都会重新赋值result,只能得到单个单元格的数组,无法生成二维结构。下面提供两种实现方式:

方式一:用内置遍历方法(简洁高效)

import openpyxl

# 加载Excel工作簿
wb = openpyxl.load_workbook("IEEE.xlsx")
bus1 = wb['33-Bus']

# 初始化二维数组
two_d_array = []

# 遍历每一行,直接获取行内所有单元格的值
for row in bus1.iter_rows(values_only=True):
    # 将当前行转为列表,添加到二维数组中
    two_d_array.append(list(row))

# 验证结果
for row_data in two_d_array:
    print(row_data)

方式二:手动双重循环(贴近JavaScript写法)

如果你习惯用行列索引遍历,可参考这种写法:

import openpyxl

wb = openpyxl.load_workbook("IEEE.xlsx")
bus1 = wb['33-Bus']

row_max = bus1.max_row
col_max = bus1.max_column

two_d_array = []

for i in range(1, row_max + 1):
    # 每行开始时创建新的子数组
    current_row = []
    for j in range(1, col_max + 1):
        # 把当前单元格值加入子数组
        current_row.append(bus1.cell(i, j).value)
    # 行遍历结束后,将子数组加入二维数组
    two_d_array.append(current_row)

# 输出最终二维数组
print(two_d_array)

额外优化提示

  • 代码中未用到的numpy、array、sys、open_binary模块可以直接删除,精简代码
  • 如果需要把单元格的字符串值转为数值类型(比如整数/浮点数),可以在追加时做转换,例如float(bus1.cell(i,j).value),注意提前处理空值情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:30:55