xiangyuebj 发表于 2023-8-26 00:18:49

用openpyxl批量写入数据的问题。

诉求:在excel中,A列批量写入19个相同的日期,比如6月12日,B列写入19个不同的部位,比如,1-19个编号。如此循环,每运行一次增加19个日期+1和编号1-19的行


理想很丰满,现实很骨感。

import openpyxl
wb=openpyxl.Workbook()
ws=wb.active
i = 0
while i < 20:
    ws.cell(”A1“).value = "6月12日"
    i += 1
wb.save('5.xlsx')

本人愚笨,截止目前为止,指写出这么点代码,连A列的数据都无法正常写入,

看了很多教程,就是想不通怎么实现的,论坛里单身帮帮忙,指点一二。

isdkz 发表于 2023-8-26 00:19:32

问题出在你的代码中,你使用了错误的单元格地址格式。在openpyxl中,单元格的地址应该使用字母和数字的组合,例如"A1"。另外,你的代码中没有处理每次循环中日期和编号的增加。

以下是修改后的代码,可以实现你的需求:

import openpyxl

wb = openpyxl.Workbook()
ws = wb.active

date = "6月12日"
number = 1

for i in range(19):
    ws["A{}".format(i+1)].value = date
    ws["B{}".format(i+1)].value = number + i

wb.save('5.xlsx')


在修改后的代码中,我们使用了 for 循环来遍历19次,每次循环中,我们通过 format 方法来动态生成正确的单元格地址。同时,我们在每次循环中更新了日期和编号的值,以实现每次循环中的增加。

xiangyuebj 发表于 2023-8-26 21:06:55

isdkz 发表于 2023-8-26 00:19
问题出在你的代码中,你使用了错误的单元格地址格式。在openpyxl中,单元格的地址应该使用字母和数字的组合 ...

import openpyxl

wb = openpyxl.Workbook()
ws = wb.active

date = "6月12日"
number = ["6910地库","1235地库","711地库","812地库","1#","2#","3#","4#","5#","6#","7#","8#","9#","10#","11#","12#","13#","14#","15#"]


for i in range(19):
    ws["A{}".format(i+1)].value = date
    ws["B{}".format(i+1)].value = number

wb.save('8.xlsx')

我把number改成列表,,为什么不能循环吧这个列表里的值写进去呢?
页: [1]
查看完整版本: 用openpyxl批量写入数据的问题。