如何直接在openpyxl中追加单元格值
How to append cell values in openpyxl directly
我正在尝试使用 openpyxl 直接附加值来附加单元格值。
这个有效:
wb1=load_workbook('test.xlsx')
ws1=wb1.active
testlist=('two','three','four','five')
for i in testlist:
ws1['A1'].value = ws1['A1'].value +(' ') + i
print(ws1['A1'].value)
A1 的值为“一”,循环运行后为“一二三四五”
但是可以直接在单元格值上使用append方法吗?
for i in testlist:
ws1.append['A1'].value = i
但是这会引发错误
“类型错误:'method' 对象不支持项目分配”
您需要将元组移动到字符串中,然后可以像这样将其添加到单元格 A1
。
wb1=Workbook()
ws1=wb1.active
testlist=('one','two','three','four','five')
myString = ' '.join(map(str, testlist))
myString.strip()
ws1['A1'].value = myString
wb1.save('test1.xlsx')
错误“方法对象不可订阅”意味着,您将对象视为 python dict
或 dict
类对象,而对象不是。因为append
方法returnsNone.
根据 openpyxl 的文档,您可以 worksheet.append 通过:
- 一个列表:所有值从第一列开始按顺序添加。
这是你的情况。只需执行以下操作即可:
wb1=Workbook()
ws1=wb1.active
testlist=('one','two','three','four','five')
# append each element side by side in a single row
ws1.append(testlist)
# To append each element vertical direction in new row you can un-comment next 2 lines.
#for entry in testlist:
# ws1.append([entry])
wb1.save('test.xlsx')
- A dict: 值被分配给由键(数字或字母)指示的列。如果您定位到特定列,这可能会有所帮助。
或
要获得更多控制,只需使用 worksheet.cell.
我正在尝试使用 openpyxl 直接附加值来附加单元格值。
这个有效:
wb1=load_workbook('test.xlsx')
ws1=wb1.active
testlist=('two','three','four','five')
for i in testlist:
ws1['A1'].value = ws1['A1'].value +(' ') + i
print(ws1['A1'].value)
A1 的值为“一”,循环运行后为“一二三四五”
但是可以直接在单元格值上使用append方法吗?
for i in testlist:
ws1.append['A1'].value = i
但是这会引发错误 “类型错误:'method' 对象不支持项目分配”
您需要将元组移动到字符串中,然后可以像这样将其添加到单元格 A1
。
wb1=Workbook()
ws1=wb1.active
testlist=('one','two','three','four','five')
myString = ' '.join(map(str, testlist))
myString.strip()
ws1['A1'].value = myString
wb1.save('test1.xlsx')
错误“方法对象不可订阅”意味着,您将对象视为 python dict
或 dict
类对象,而对象不是。因为append
方法returnsNone.
根据 openpyxl 的文档,您可以 worksheet.append 通过:
- 一个列表:所有值从第一列开始按顺序添加。 这是你的情况。只需执行以下操作即可:
wb1=Workbook()
ws1=wb1.active
testlist=('one','two','three','four','five')
# append each element side by side in a single row
ws1.append(testlist)
# To append each element vertical direction in new row you can un-comment next 2 lines.
#for entry in testlist:
# ws1.append([entry])
wb1.save('test.xlsx')
- A dict: 值被分配给由键(数字或字母)指示的列。如果您定位到特定列,这可能会有所帮助。
或
要获得更多控制,只需使用 worksheet.cell.