Windows可执行程序
很奇怪的场景,但既然有,肯定不是个例,整一个exe放在这里,可以直接使用。由于我把Python和用到的模块全部打包进去了,所以有点大,其实也就几行代码而已,竟然有10M
使用场景
你有一些工作簿,比如财务报表,我这里就用“测试用表”来表示。
Yaodo·2022-04-14·287 次阅读
很奇怪的场景,但既然有,肯定不是个例,整一个exe放在这里,可以直接使用。由于我把Python和用到的模块全部打包进去了,所以有点大,其实也就几行代码而已,竟然有10M
你有一些工作簿,比如财务报表,我这里就用“测试用表”来表示。
你想把所有的工作簿里面的第一张表,横向排列到一张表中,就像这样:
先把那些文件放在同一个文件夹里,就像第一张图上那样。双击下载的exe文件运行。
会跳出一个对话框,选择你刚刚新建的文件夹,点击“选择文件夹”。
设定你要合并的单元格范围,比如我这里想要合并的是A2:E6
然后按任意键运行就行了,最后会在文件夹下生成一个result.xlsx
from openpyxl import load_workbook from openpyxl import Workbook from copy import copy import os import warnings warnings.filterwarnings('ignore') # 设定目录 path = r"C:\Users\rvw\Desktop\新建文件夹" # 设定要合并的单元格范围 start = "A3".upper() # 起始单元格(左上角) end = "e6".upper() # 结束单元格(右下角) # 定义复制方法 def copy_cell(cell, new_cell): new_cell.value = cell.value if cell.has_style: new_cell.font = copy(cell.font) new_cell.border = copy(cell.border) new_cell.fill = copy(cell.fill) new_cell.number_format = copy(cell.number_format) new_cell.protection = copy(cell.protection) new_cell.alignment = copy(cell.alignment) return 0 # 新建空白工作簿用以保存 new_wb = Workbook() ws = new_wb.worksheets[0] # 读取文件夹中的所有Excel文件 files = [] for r,ds,fs in os.walk(path): for f in fs: if '.xls' not in f: continue files.append(os.path.join(r,f)) files.sort() print('即将按顺序合并以下文件(合并范围{}:{}):'.format(start,end)) # 复制到空白工作簿 for i in range(len(files)): f = files[i] print(f) wb = load_workbook(filename = f) sh = wb.worksheets[0] area = sh[start:end] for row in area: for cell in row: r = cell.row c = cell.column + len(area[0])*i copy_cell(cell, ws.cell(r,c)) # 保存空白工作簿 dest = os.path.join(path,'result.xlsx') new_wb.save(filename = dest) x = input('合并完成。\n已保存到{},按任意键退出。'.format(dest))
需要的模块有:
要替换的有:
其实核心代码只有一段:
def copy_cell(cell, new_cell): new_cell.value = cell.value if cell.has_style: new_cell.font = copy(cell.font) new_cell.border = copy(cell.border) new_cell.fill = copy(cell.fill) new_cell.number_format = copy(cell.number_format) new_cell.protection = copy(cell.protection) new_cell.alignment = copy(cell.alignment) return 0
参考:
Comments | NOTHING