我这里将最后的输出文件命名为“最终合并.xlsx”,然后待合并的文件则是一些来自oracle的各个查询结果.xlsx,大家参考一下就行了,根据自己的实际需要对脚本进行修改。合并excel这件事,本身python并不是很擅长,如果excel文件比较大(比如有几十万行或以上的数据)那么合并起来是非常耗时间的,后来我找到了一个软件叫做mergeexcel,用起来还不错,合并几十万行几百万行的excel文件有奇效。
如果平时的excel文件也就几百几千行的话,那直接使用python得了。
from openpyxl import Workbook
from openpyxl import load_workbook
import os
path = os.getcwd()
fs = []
outname = '最终合并.xlsx'
if not os.path.exists(os.getcwd() + '\\' + outname):
wb = Workbook()
ws = wb.active
wb.save(outname)
wbo = load_workbook(outname)
wso = wbo.active
for f in os.listdir(path):
if f.endswith('.xlsx') and '查询结果' in f:
fs.append(f)
wbt = load_workbook(fs[1])
wst = wbt.active
max_row = wst.max_row
max_column = wst.max_column
for i in range(1,max_row+1):
for j in range(1,max_column+1):
v = wst.cell(i,j).value
if v:
wso.cell(i,j,v)
wbo.save(outname)
print('合并完成...')