赞
踩
针对合并多个Excel工作簿或多个工作簿,我们可以使用os,openpyxl库进行实现。
其中list_sh = old_sh.iter_rows(values_only=True)中values_only可以选择True,直接导出单元格的value值
- import os
- import openpyxl
-
- path_ = input("请输入需要合并Excel文件的文件夹路径:")
-
- wb_new = openpyxl.Workbook()
- sheets = wb_new.active
- sheets.title = '合并数据'
-
- if os.path.isfile(path_):
- cell_bg = int(input('请输入Excel表头的行数:'))
- path_2 = input('请输入保存的路径:')
- sh_name_2 = input('请输入保存的名称:')
- wb_old = openpyxl.load_workbook(path_)
- sh_old_list = wb_old.sheetnames
-
- for sh in sh_old_list:
- old_sh = wb_old[sh]
- print(old_sh)
- if sheets.max_row == 1:
- list_sh = old_sh.iter_rows(values_only=True) # iter_rows()中values_only=True表示返回单元格的值,false 表示返回生成器
- else:
- list_sh = old_sh.iter_rows(min_row=cell_bg + 1, values_only=True)
-
- # list_sh=[[],[],[]]
- for i in list_sh:
- sheets.append(i)
- if sh_name_2 == '':
- sh_name_2 = '合并数据'
- if path_2 == '':
- path_2 = path_.rsplit('\\', 1)[0]
- wb_new.save(path_2 + '\\' +'{}.xlsx'.format(sh_name_2))
- else:
- sh_name = input('请输入需要合并的工作表名称:')
- cell_bg = int(input('请输入Excel表头的行数:'))
- path_2 = input('请输入保存的路径:')
- sh_name_2 = input('请输入保存的名称:')
- # 获取文件夹中的文件名称
- list_ex = os.listdir(path_)
- for ls in list_ex:
- print('正在合并{}'.format(ls))
- wb_old = openpyxl.load_workbook(path_ + '\\' + ls)
- old_sh = wb_old[sh_name]
-
- # 判断当前工作表是否为第一个工作表,若不是则从表头后的下一行开始
- if sheets.max_row == 1:
- list_sh = old_sh.iter_rows(values_only=True) # iter_rows()中values_only=True表示返回单元格的值,false 表示返回生成器
- else:
- list_sh = old_sh.iter_rows(min_row=cell_bg + 1, values_only=True)
-
- # list_sh=[[],[],[]]
- for i in list_sh:
- sheets.append(i)
-
- if path_2 == '':
- path_2 = path_
- if sh_name_2 == '':
- sh_name_2 = '合并数据'
- wb_new.save(path_2 + '\\' + '{}.xlsx'.format(sh_name_2))
- print('合并完成.....')
- stop_ = input('输入任意键值关闭窗口........')
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。