Openpyxl AttributeError:“ str”对象没有属性“ column”

时间:2019-12-18 15:26:32

标签: python excel openpyxl

我正在使用openpyxl修改现有的Excel文件,并在修改后将其保存到新的Excel文件中。源Excel文件有60列和5000行。

这是代码,首先是导入和工作簿加载/激活:

import openpyxl
from openpyxl import load_workbook
from openpyxl import Workbook
from openpyxl.utils import range_boundaries

wb_source = load_workbook(EXCEL.xlsx")
source_sheets = wb_source.sheetnames
ws1 = wb_source[source_sheets[0]]

wb_target = Workbook()
ws2 = wb_target.active

我在代码的这一部分遇到麻烦,我将使用excelcolumns列表来迭代前30列以将它们复制到新的Excel文件中。由于某些原因,“ for cell in ...”部分仅接受硬编码的ws1 ['column_number:column_number'],而我无法将在另一个列表“ columnlist”中创建的列表项传递给它,如下所示。 >

这很好用,并将第一列A写入新的Excel文件:

for cell in ws1['A:A']:
    print('Printing cells from ' + str(cell.column) + str(cell.row))
    ws2.cell(row=cell.row, column=1, value=cell.value)

wb_target.save(EXCEL_target.xlsx') 

但是这会产生AttributeError:

excelcolumns = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W","X", "Y", "Z",     "AA", "AB", "AC", "AD"]

columnlist = []
for i in excelcolumns:
    columnlist.append(("ws1" + "['" + i + ":" + i + "']"))

for cell in columnlist[0]:
    print('Printing cells from ' + str(cell.column) + str(cell.row))
    ws2.cell(row=cell.row, column=1, value=cell.value)

---> Traceback (most recent call last):
File "c:/...PATH.../", line 50, in <module>
print('Printing cells from ' + str(cell.column) + str(cell.row))
AttributeError: 'str' object has no attribute 'column'

我的问题是:我如何在for循环中将列列表中的每个项目传递“ for单元...”部分,这样我就不必为每一列写单独的行(这意味着我不想为此:

for cell in ws1['A:A']:... & for cell in ws1['B:B']:... 
& for cell in ws1['C:C']:... etc.

)?

0 个答案:

没有答案