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 相关文章推荐
numpy.delete删除一列或多列的方法
Apr 03 Python
Python3基于sax解析xml操作示例
May 22 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
Jan 17 Python
Python写一个基于MD5的文件监听程序
Mar 11 Python
django多对多表的创建,级联删除及手动创建第三张表
Jul 25 Python
Win10环境python3.7安装dlib模块趟过的坑
Aug 01 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
Sep 18 Python
pytorch 指定gpu训练与多gpu并行训练示例
Dec 31 Python
python 实现从高分辨图像上抠取图像块
Jan 02 Python
基于Pycharm加载多个项目过程图解
Jan 19 Python
基于pygame实现童年掌机打砖块游戏
Feb 25 Python
python绘制汉诺塔
Mar 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学习笔记之字符串编码的转换和判断
2014/05/22 PHP
phplot生成图片类用法详解
2015/01/06 PHP
php函数mkdir实现递归创建层级目录
2016/10/27 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
2020/02/10 PHP
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
2008/12/29 Javascript
JavaScript 输入框内容格式验证代码
2010/02/11 Javascript
JS验证身份证有效性示例
2013/10/11 Javascript
jquery垂直公告滚动实现代码
2013/12/08 Javascript
随鼠标移动的时钟非常漂亮遗憾的是只支持IE
2014/08/12 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
2016/04/14 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
2016/05/12 Javascript
Javascript类型系统之undefined和null浅析
2016/07/13 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
react-redux中connect()方法详细解析
2017/05/27 Javascript
在ABP框架中使用BootstrapTable组件的方法
2017/07/31 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
打字效果动画的4种实现方法(超简单)
2017/10/18 Javascript
vue 项目常用加载器及配置详解
2018/01/22 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
2019/08/29 Javascript
浅谈Vue.set实际上是什么
2019/10/17 Javascript
python实现zencart产品数据导入到magento(python导入数据)
2014/04/03 Python
Python中异常重试的解决方案详解
2017/05/05 Python
浅析Python函数式编程
2018/10/06 Python
python读取Kafka实例
2019/12/23 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
Python实现从N个数中找到最大的K个数
2020/04/02 Python
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
农业大学毕业生的个人自我评价
2013/10/11 职场文书
最新结婚典礼主持词
2014/03/14 职场文书
《有趣的发现》教学反思
2014/04/15 职场文书
伊索寓言教学反思
2014/05/01 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
关于拾金不昧的感谢信
2015/01/21 职场文书
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang