初学python,以下代码实现从a.xlsx复制B、D、F、H、J列,到b.xlsx的A、B、C、D、E列。
功能已实现,现分享代码。
同时,请各位破友拍砖,有没有更高效率的写法?谢谢
[Asm] 纯文本查看 复制代码 from openpyxl import load_workbook
# 只读加载源数据EXCEL表,并获得sheet行数
formXlsx = load_workbook(filename='a.xlsx', read_only=True)
formSheet = formXlsx['Sheet1']
formSheetMaxRow = formSheet.max_row
# 加载目标EXCEL表
toXlsx = load_workbook(filename='b.xlsx')
toSheet = toXlsx['sheet2']
# 把要复制的列创建为元组
tupFormColumnB = formSheet['B2':'B90000']
tupFormColumnD = formSheet['D2':'D90000']
tupFormColumnF = formSheet['F2':'F90000']
tupFormColumnH = formSheet['H2':'H90000']
tupFormColumnJ = formSheet['J2':'J90000']
# 根据源数据EXCEL表sheet行数循环,创建要添加的数据,并添加到目标EXCEL表
for i in range(0, formSheetMaxRow - 1):
tupAddend = (tupFormColumnB[i][0].value, tupFormColumnD[i][0].value, tupFormColumnF[i][0].value,
tupFormColumnH[i][0].value, tupFormColumnJ[i][0].value)
toSheet.append(tupAddend)
# 保存目标EXCEL表
toXlsx.save('b.xlsx')
# 关闭两个EXCEL表
formXlsx.close()
toXlsx.close() |