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通过select实现异步IO的方法
Jun 04 Python
Python文件及目录操作实例详解
Jun 04 Python
Django模板变量如何传递给外部js调用的方法小结
Jul 24 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
Aug 18 Python
python连接打印机实现打印文档、图片、pdf文件等功能
Feb 07 Python
详解django中Template语言
Feb 22 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
Feb 28 Python
Python带参数的装饰器运行原理解析
Jun 09 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
Sep 29 Python
jupyter使用自动补全和切换默认浏览器的方法
Nov 18 Python
Python趣味爬虫之用Python实现智慧校园一键评教
May 28 Python
OpenCV实现常见的四种图像几何变换
Apr 01 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中文件下载功能实现超详细流程分析
2012/06/13 PHP
php导入导出excel实例
2013/10/25 PHP
header导出Excel应用示例
2014/01/24 PHP
PHP错误处理函数
2016/04/03 PHP
PHP 与 UTF-8 的最佳实践详细介绍
2017/01/04 PHP
thinkphp中U方法按路由规则生成url的方法
2018/03/12 PHP
jValidate 基于jQuery的表单验证插件
2009/12/12 Javascript
javascript preload&lazy load
2010/05/13 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
js实现页面转发功能示例代码
2013/08/05 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
基于JavaScript实现图片点击弹出窗口而不是保存
2016/02/06 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
2016/06/20 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
JS实现的抛物线运动效果示例
2018/01/30 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
JS获取当前时间戳方法解析
2020/08/29 Javascript
解决vue侦听器watch,调用this时出现undefined的问题
2020/10/30 Javascript
Python中的二叉树查找算法模块使用指南
2014/07/04 Python
python验证码识别教程之利用投影法、连通域法分割图片
2018/06/04 Python
python实现弹跳小球
2019/05/13 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
python取均匀不重复的随机数方式
2019/11/27 Python
全网首秀之Pycharm十大实用技巧(推荐)
2020/04/27 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
基于Keras的格式化输出Loss实现方式
2020/06/17 Python
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
数据管理员的自我评价分享
2013/11/15 职场文书
事业单位绩效考核实施方案
2014/03/27 职场文书
秘书英文求职信
2014/04/16 职场文书
自查自纠工作总结
2014/10/15 职场文书
2014年教育工作总结
2014/11/26 职场文书
安全教育主题班会教案
2015/08/12 职场文书
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android