单元格中的Python openpyxl循环数据
我试图将值2循环到给定范围内的单元格中,但当脚本运行并检查excel工作表时,单元格为空单元格中的Python openpyxl循环数据,python,python-3.x,openpyxl,Python,Python 3.x,Openpyxl,我试图将值2循环到给定范围内的单元格中,但当脚本运行并检查excel工作表时,单元格为空 from openpyxl import Workbook wb = Workbook() ws = wb.active n = 1 ws.title = 'Day '+str(n) ws['A1'] = 42 import datetime ws['A2'] = datetime.datetime.now() c = ws['A4'] ws['A4'] = 4 d = ws.cell(r
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
n = 1
ws.title = 'Day '+str(n)
ws['A1'] = 42
import datetime
ws['A2'] = datetime.datetime.now()
c = ws['A4']
ws['A4'] = 4
d = ws.cell(row=4, column=2, value=10)
cell_range = ws['A5':'A7']
for cell in cell_range:
cell.value = 2
wb.save("sample.xlsx")
这里的错误是什么?(注意:问题最初将有问题的作业列为cell=2
)
有两个问题
首先,为了将值分配给单元格,请将值分配给单元格的值
属性:
cell.value = 2
第二,对于cell\u范围中的单元格,实际上返回包含单元格列的元组。因此,正确的迭代方法是:
for each_column in cell_range:
for cell in each_column :
cell.value = 2
cell=2
不起作用的原因是赋值使名称引用对象。分配前,名称单元格
指的是单元格范围
中的一个单元格。在后面,名称单元格
指的是整数对象2
。名称cell
引用的cell对象不受此赋值的影响
但是如果这是真的,为什么ws['A4']=4
起作用呢?那是因为ws['A4']=4
不是赋值!它实际上是方法调用的语法糖。因为它是一个方法调用,所以它实际上可以改变一个对象,而不只是让一个名称在正常赋值中引用一个对象。(注意:问题最初将有问题的赋值列为cell=2
)
有两个问题
首先,为了将值分配给单元格,请将值分配给单元格的值
属性:
cell.value = 2
第二,对于cell\u范围中的单元格,实际上返回包含单元格列的元组。因此,正确的迭代方法是:
for each_column in cell_range:
for cell in each_column :
cell.value = 2
cell=2
不起作用的原因是赋值使名称引用对象。分配前,名称单元格
指的是单元格范围
中的一个单元格。在后面,名称单元格
指的是整数对象2
。名称cell
引用的cell对象不受此赋值的影响
但是如果这是真的,为什么
ws['A4']=4
起作用呢?那是因为ws['A4']=4
不是赋值!它实际上是方法调用的语法糖。因为它是一个方法调用,所以它实际上可以改变一个对象,而不是像普通赋值那样让一个名称引用一个对象。AttributeError:“tuple”对象没有属性“value”@cojoe:我需要看看你的代码。这意味着cell
引用了一个元组,但您的代码表明了另一种情况。对于枚举(单元格范围)中的单元格,您是否像这样进行迭代:?AttributeError:“tuple”对象没有属性“value”@cojoe:我需要查看您的代码。这意味着cell
引用了一个元组,但您的代码表明了另一种情况。对于enumerate(cell_范围)中的cell,您是否像这样进行迭代:?