【发布时间】:2017-03-15 20:59:40
【问题描述】:
我想使用 python 将“Sheet1”中的数据传输到同一工作簿中的工作表“Sheet2”中。我已经编写了下面的脚本,但面临 'IndexError: list index out of range' 。我知道这不是最好的方法。如果有人能以更有效的方式指导我,我将不胜感激。我在下面分享excel文件的快照
我可以直接输入'Sheet1'单元格值--->'Sheet2'单元格值而不是做'Sheet1'单元格值--->List---->' Sheet2' 单元格值?
import openpyxl
wb = openpyxl.load_workbook('C:\Users\laban\Desktop\Par-emails1.xlsx')
type(wb)
wb.get_sheet_names()
sheet = wb.get_sheet_by_name('Sheet1')
type(sheet)
anotherSheet = wb.active
sheet1 = wb.get_sheet_by_name('Sheet2')
type(sheet1)
par=[sheet.cell(row= col, column=1).value for col in range(1, 2450)]
email_no=[sheet.cell(row= col, column=2).value for col in range(1, 2450)]
Domain=[sheet.cell(row= col, column=3).value for col in range(1, 2450)]
email=[sheet.cell(row= col, column=4).value for col in range(1, 2450)]
for x in range(0,2450):
if email_no[x]<9:
sheet1.cell(row= x+1, column=1).value=par[x]
sheet1.cell(row= x+1, column=2).value=email_no[x]
sheet1.cell(row= x+1, column=3).value=Domain[x]
sheet1.cell(row= x+1, column=4).value=email[x]
wb.save('C:\Users\laban\Desktop\Par-emails1.xlsx')
【问题讨论】:
-
你在哪一行得到这个错误?错误信息总是伴随着代码崩溃的(最新的)行号。它会在
for x in range(0,2450)崩溃吗?我记得 openpyxl 从 1 而不是 0 开始索引。 -
如果 email_no[x]
-
我怀疑
x = 0在那一行。我说的对吗?