python操作复制EXCEL表代码分享交流
初学python,以下代码实现从a.xlsx复制B、D、F、H、J列,到b.xlsx的A、B、C、D、E列。功能已实现,现分享代码。
同时,请各位破友拍砖,有没有更高效率的写法?谢谢
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.value, tupFormColumnD.value, tupFormColumnF.value,
tupFormColumnH.value, tupFormColumnJ.value)
toSheet.append(tupAddend)
# 保存目标EXCEL表
toXlsx.save('b.xlsx')
# 关闭两个EXCEL表
formXlsx.close()
toXlsx.close() python让啥都变简单了…… 本帖最后由 gujiejack2 于 2020-11-24 23:07 编辑
import pandas as pd
file_path = 'a.xlsx'
data = pd.read_excel(file_path)
data = data.iloc[:, ]
data.to_excel('b.xlsx', index=False)
难得的沙发 为啥不用pandas? 每个sheet不是只能有65535行吗? gujiejack2 发表于 2020-11-24 22:53
为啥不用pandas?
初学,未研究pandas ciker_li 发表于 2020-11-24 23:05
每个sheet不是只能有65535行吗?
谢谢提醒,可以优化。 gujiejack2 发表于 2020-11-24 23:02
import pandas as pd
file_path = 'a.xlsx'
谢谢指教 python各种库大放异彩
页:
[1]
2