python利用openpyxl拆分多个工作表的工作簿的方法


Posted in Python onSeptember 27, 2019

实现按目录拆分工作簿,源数据如下图

python利用openpyxl拆分多个工作表的工作簿的方法

按目录拆分成N个文件。

python利用openpyxl拆分多个工作表的工作簿的方法

上代码,没有找是否有整个sheet 复制的,先逐个cell复制解决问题。:

# encoding: utf-8
"""
@author: 陈年椰子
@contact: hndm@qq.com
@version: 1.0
@file: Split_Xls.py
@time: 2019/9/24 0028 15:04
说明
"""
def Split_Xls(xls_file):
  from openpyxl import load_workbook
  from openpyxl import Workbook
 
  wb = load_workbook(xls_file)
  sheet_list = wb.sheetnames
  print(sheet_list)
  a_sheet = wb['目录']
  for i in range(3,6):
    sheet_name = a_sheet['B{}'.format(i)].value
    if sheet_name is None:
      break
    if sheet_name == '':
      break
    sr_sheet = wb[sheet_name]
    new_file_name = "{}.xlsx".format(sheet_name)
    print(sheet_name)
    wb_tg = Workbook()
    ws = wb_tg.active
    ws.title = sheet_name
 
    # 两个for循环遍历整个excel的单元格内容
    for i, row in enumerate(sr_sheet.iter_rows()):
      for j, cell in enumerate(row):
        # print(i,j,cell.value)
        ws.cell(row=i + 1, column=j + 1, value=cell.value)
    wb_tg.save(new_file_name)
    wb_tg.close()
  wb.close()
 
 
 
def Split_Xls2(xls_file):
  # 这个是通过删除其他的工作表,只留下要保存的工作表,这样就可以整个表复制,包括样式,过程曲折,但能达到效果。
  from openpyxl import load_workbook
  wb = load_workbook(xls_file)
  sheet_list = wb.sheetnames
  print(sheet_list)
  work_list = []
  a_sheet = wb['目录']
  for i in range(3,6):
    sheet_name = a_sheet['B{}'.format(i)].value
    if sheet_name is None:
      break
    if sheet_name == '':
      break
    work_list.append(sheet_name)
  wb.close()
 
  for sheet_name in work_list:
    new_file_name = "{}.xlsx".format(sheet_name)
    print('处理工作表', sheet_name, '\t保存文件', new_file_name)
    wb = load_workbook(xls_file)
    # print(wb.sheetnames)
    for del_sheet in sheet_list:
      if del_sheet != sheet_name:
        # print('del',del_sheet)
        wb.remove(wb[del_sheet])
    wb.save(new_file_name)
    wb.close()
 
 
Split_Xls2('test.xlsx')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python  连接字符串(join %)
Sep 06 Python
python基础入门学习笔记(Python环境搭建)
Jan 13 Python
Python 稀疏矩阵-sparse 存储和转换
May 27 Python
python GUI图形化编程wxpython的使用
Jul 19 Python
关于Python 常用获取元素 Driver 总结
Nov 24 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
Python 文件数据读写的具体实现
Jan 24 Python
python 获取当前目录下的文件目录和文件名实例代码详解
Mar 10 Python
Python生成器实现简单"生产者消费者"模型代码实例
Mar 27 Python
浅谈Django前端后端值传递问题
Jul 15 Python
python实现学生信息管理系统(精简版)
Nov 27 Python
python自动化操作之动态验证码、滑动验证码的降噪和识别
Aug 30 Python
Python绘制热力图示例
Sep 27 #Python
python将print输出的信息保留到日志文件中
Sep 27 #Python
python线程安全及多进程多线程实现方法详解
Sep 27 #Python
python config文件的读写操作示例
Sep 27 #Python
Python queue队列原理与应用案例分析
Sep 27 #Python
python多环境切换及pyenv使用过程详解
Sep 27 #Python
python 哈希表实现简单python字典代码实例
Sep 27 #Python
You might like
献给php初学者(入门学习经验谈)
2010/10/12 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
php微信公众平台开发之获取用户基本信息
2015/08/17 PHP
YII框架中搜索分页jQuery写法详解
2016/12/19 PHP
PHP对象相关知识总结
2017/04/09 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
Laravel5.1 框架路由基础详解
2020/01/04 PHP
任意位置显示html菜单
2007/02/01 Javascript
JavaScript 动态改变图片大小
2009/06/11 Javascript
js 自定义的联动下拉框
2010/02/07 Javascript
JS高级拖动技术 setCapture,releaseCapture
2011/07/31 Javascript
Javascript拓展String方法小结
2013/07/08 Javascript
吐槽一下我所了解的Node.js
2014/10/08 Javascript
javascript中String对象的slice()方法分析
2014/12/20 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
JavaScript中length属性的使用方法
2015/06/05 Javascript
JS未跨域操作iframe里的DOM
2016/06/01 Javascript
手机浏览器 后退按钮强制刷新页面方法总结
2016/10/09 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
2016/12/26 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
vue+elementUI实现图片上传功能
2019/08/20 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
python进阶教程之词典、字典、dict
2014/08/29 Python
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
python消费kafka数据批量插入到es的方法
2018/12/27 Python
pycharm中显示CSS提示的知识点总结
2019/07/29 Python
馥蕾诗美国官网:Fresh美国
2019/10/09 全球购物
家长给小学生的评语
2014/01/30 职场文书
初中生评语大全
2014/04/24 职场文书
大学生找工作求职信
2014/07/09 职场文书
2014幼儿园中班工作总结
2014/11/10 职场文书
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python
Ruby处理YAML和json数据
2022/04/18 Ruby