|
发表于 2020-11-9 19:13
来自手机
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
bihaiqt 发表于 2020-11-9 13:30
已重新上传,谢谢!
# 合并多表.py
#zpy2@excelhome
import os
def findall_files(main_dir: str) -> list:
collector = []
for root, dirs, files in os.walk(main_dir):
collector.extend([os.path.join(root, f) for f in files])
return collector
files_result=findall_files('./数据')
#print(files_result)
import sys
#sys.exit()
#将rows写入excel
def op_toexcel(data,filename): # openpyxl库储存数据到excel
import openpyxl as op
#wb = op.Workbook(filename) # 创建工作簿对象
#https://openpyxl.readthedocs.io/en/stable/usage.html#read-an-existing-workbook
wb=op.load_workbook(filename)
ws = wb['Sheet1'] # 创建子表
for i in range(len(data)):
d = data
print(d)
ws.append(d) # 每次写入一行
wb.save(filename)
import openpyxl as op
lines=[]
for file in files_result:
wb=op.load_workbook(file)
sheet_name='Sheet1'
ws=wb[sheet_name]
first_row=4
last_row=24
first_column=1
last_column=8
enterprise_name=ws.cell(2,2).value
for row in range(first_row,last_row):
#第一列不为空
if ws.cell(row,1).value is None:
break
line=[]
line.append(enterprise_name)
for column in range(first_column,last_column):
line.append(ws.cell(row,column).value)
lines.append(line)
#print(lines)
import shutil
source='合并.xlsx.bak'
target='合并.xlsx'
#shutil.copyfile(source,target)
consolidated_file=target
data=lines
op_toexcel(lines,consolidated_file)
'''
合并后,发现从25行写入,需要调整汇总模板
wb=op.load_workbook(consolidated_file)
ws=wb['Sheet1']
#print(ws.values)
range_date=ws.values
l=[[cell for cell in row] for row in range_date][1:]
print(l)
'''
|
|