用python openpyxl合并多个excel文件

我这里将最后的输出文件命名为“最终合并.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('合并完成...')

 

你可能感兴趣的:(python)