博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EXCEL工作表合并
阅读量:5025 次
发布时间:2019-06-12

本文共 1871 字,大约阅读时间需要 6 分钟。

'''

"""
encoding:utf-8
author:李建飞
version:
"""
from openpyxl import load_workbook
from openpyxl import Workbook
import os

读取整个sheet表as数据并返回列表

提供sheet表为参数

def get_sheet_datas(sheet):

datas=[]
max=sheet.max_column
for row in sheet.rows:
rows=[]
for item in row:
rows.append(item.value)
target_ws.append(rows)
return target_ws

def show_select():

print()
print('程序名称:EXCEL工作表合成器\n作者:李建飞\n版本:v1.0\n发布日期:2019-1-17')
print('='40)
print('1、合并一个工作簿内的多张sheet表;')
print('2、合并指定文件夹内的所有工作簿;')
print('3、退出程序')
print('使用说明:合并的多个工作簿或多张sheet表需要具有相同的表头。')
print('='
40)

if name=='main':

while(True):
show_select()
choice=input('请输入你想进行的操作:')
if(choice=='1'):
source=input('请输入文件存放位置\n(输入示例:d:/document/grade.xlsx)\n').replace('\','/')
if(source==''):
print('未输入文件存放位置,请重新输入')
continue
#输出文件名称
target_name=input('请输入合成后的文件名称:')
if(target_name==''):
target_name='合并文件'
target_path=target_name+'.xlsx'
# 加载目标excel文件
source_wb = load_workbook(source)
# 创建目标文件对象
target_wb = Workbook()
target_ws = target_wb.active
# 获取工作簿中所有sheet表的名称
sheetnames = source_wb.sheetnames
for name in sheetnames:
get_sheet_datas(source_wb[name])
# 文件存储
target_wb.save(target_path)
print('~合并成功~')
elif(choice=='2'):
source_path=input('输入文件存放的路径(路径最后要加上斜杠):').replace('\','/')
if(source_path==''):
print('未输入文件夹路径,请重新输入')
continue
if(source_path[-1]!='/'):
source_path=source_path+'/'
# 输出文件名称
target_name = input('请输入合成后的文件名称:')
if (target_name == ''):
target_name = '合并文件'
target_path = target_name + '.xlsx'
book_names=os.listdir(source_path)
# 创建目标文件对象
target_wb = Workbook()
target_ws = target_wb.active
for name in book_names:
source_name=os.path.join(source_path,name)
source_wb=load_workbook(source_name)
get_sheet_datas(source_wb.active)
# 文件存储
target_wb.save(target_path)
print('~合并成功~')
elif(choice=='3'):
exit('~退出程序~')
else:
print('序号输入错误!请重新输入~')
'''

转载于:https://www.cnblogs.com/gldlife/p/10284651.html

你可能感兴趣的文章
T-SQL 类型转换
查看>>
在eclipse中设计BPMN 2.0工作流定义的根本步骤
查看>>
Json对象与Json字符串互转(4种转换方式)
查看>>
PAT甲级1002 链表实现方法
查看>>
查看Linux信息
查看>>
Python中sys模块sys.argv取值并判断
查看>>
【详记MySql问题大全集】四、设置MySql大小写敏感(踩坑血泪史)
查看>>
并查集
查看>>
ubuntu 11.04下android开发环境的搭建!
查看>>
Bzoj 3343: 教主的魔法
查看>>
括号序列(栈)
查看>>
一件趣事
查看>>
DevExpress控件TExtLookupComboBox实现多列模糊匹配输入的方法
查看>>
atom 调用g++编译cpp文件
查看>>
H3C HDLC协议特点
查看>>
iptables 网址转译 (Network address translation,NAT)
查看>>
ios __block typeof 编译错误解决
查看>>
android 插件形式运行未安装apk
查看>>
ios开发之 manage the concurrency with NSOperation
查看>>
Android权限 uses-permission
查看>>