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

如何用Openpyxl通过循环在指定单元格区域交替填充值?

使用Openpyxl交替填充对角线单元格

嘿,这需求挺清晰的,用openpyxl完全能搞定,我给你写个实用的代码示例,再把关键步骤掰碎了讲清楚,你直接抄过去改改就能用。

实现思路

核心就是遍历行号和列号相等的单元格(也就是从A1到H8的对角线),因为你要求从(1,1)开始,下一个到(2,2),直到列到H(第8列)或者行到10。由于列最多到8,所以我们只需要循环到第8行就够了,再往后行9、10的话列数不够对应相等的位置了。

完整代码示例

from openpyxl import Workbook, load_workbook

# 这里分两种情况:创建新文件或者加载现有文件
# 情况1:创建新工作簿
wb = Workbook()
ws = wb.active

# 情况2:加载已有的Excel文件(把下面这行注释打开,注释掉上面两行)
# wb = load_workbook("你的文件路径.xlsx")
# ws = wb.active

# 定义填充范围:行1到10,列1到8(H列)
max_target_row = 10
max_target_col = 8

# 循环填充对角线单元格
# 取行和列的最小值作为循环上限,避免列越界
for idx in range(1, min(max_target_row, max_target_col) + 1):
    # 给(row=idx, column=idx)的单元格赋值"x"
    ws.cell(row=idx, column=idx, value="x")

# 保存文件(如果是加载现有文件,注意覆盖原文件或者换个名字)
wb.save("填充结果.xlsx")

关键细节解释

  • 单元格定位:ws.cell(row=行号, column=列号)是openpyxl定位单元格的标准方式,行和列都是从1开始计数,和Excel里的编号一致。
  • 循环边界:用min(max_target_row, max_target_col)来确定循环的最大索引,这样既不会超过行的上限10,也不会超过列的上限8,避免出现列号超过8的情况(比如行9对应列9,但我们只到H列也就是第8列)。
  • 文件操作:如果是处理现有Excel文件,记得用load_workbook替换Workbook(),保存时注意文件名,避免误删原文件。

要是你还有其他调整需求(比如填充完对角线后还要继续填充其他规律的单元格),随时说就行!

内容的提问来源于stack exchange,提问作者edgar lenin lizarraga gastelum

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:48:24