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

如何基于不同列数的DataFrame编写通用for循环遍历列写入worksheet

通用遍历不同列数的表写入Worksheet的方法

我有多个列数不同的表(以元组列表形式存储),之前针对不同列数写了不同的for循环来写入worksheet:

示例表

表1

col1col2col3
Hi1Jake
Bye2Mike
RedBluePink

表2

cl1cl2cl3c4
FrankToyHelloPresent
BikeRideBlueMike
RedBluePinkFred

原有针对固定列数的循环代码

针对3列的表:

row = 1
col = 0

for col1, col2, col3 in table:
    worksheet.write(row, col, col1)
    worksheet.write(row, col + 1, col2)
    worksheet.write(row, col + 2, col3)
    row += 1

针对4列的表:

row = 1
col = 0

for cl1, cl2, cl3, cl4 in table:
    worksheet.write(row, col, cl1)
    worksheet.write(row, col + 1, cl2)
    worksheet.write(row, col + 2, cl3)
    worksheet.write(row, col + 2, cl3)  # 此处疑似笔误,应对应col+3写入c4
    row += 1

通用循环的实现与修正

原思路代码存在几个问题:col在每行结束后未重置为0、变量名elements重复使用,且元组列表结构不存在table.column.names属性。

修正后的通用代码可适配任意列数的表:

方法一:基础循环写法

row = 1
for row_data in table:
    col = 0  # 每行开始时重置列索引
    for value in row_data:
        worksheet.write(row, col, value)
        col += 1
    row += 1

方法二:用enumerate简化索引管理

# 行号从1开始,列号默认从0开始
for row_idx, row_data in enumerate(table, start=1):
    for col_idx, value in enumerate(row_data):
        worksheet.write(row_idx, col_idx, value)

这两种写法都会自动遍历每行的所有元素,无需针对列数修改代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 17:15:34