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随机生成信用卡卡号的实现方法
May 14 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
Jan 08 Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 Python
Python判断两个list是否是父子集关系的实例
May 04 Python
python实现决策树分类
Aug 30 Python
一看就懂得Python的math模块
Oct 21 Python
Python中is和==的区别详解
Nov 15 Python
python getpass模块用法及实例详解
Oct 07 Python
python判断无向图环是否存在的示例
Nov 22 Python
Python数据可视化:泊松分布详解
Dec 07 Python
Python文件读写w+和r+区别解析
Mar 26 Python
Python爬虫之Selenium鼠标事件的实现
Dec 04 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结束标签的使用细节探讨及联想
2013/03/04 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
Codeigniter框架实现获取分页数据和总条数的方法
2014/12/05 PHP
php编写简单的文章发布程序
2015/06/18 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
php取出数组单个值的方法
2018/03/12 PHP
laravel 解决路由除了根目录其他都404的问题
2019/10/18 PHP
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
JS+CSS设置img在DIV中只显示Img垂直居中的部分
2013/10/24 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
2013/12/20 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
jquery修改网页背景颜色通过css方法实现
2014/06/06 Javascript
jQuery对指定元素中指定字符串进行替换的方法
2015/03/17 Javascript
JavaScript生成带有缩进的表格代码
2016/06/15 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
Ionic学习日记实现验证码倒计时
2018/02/08 Javascript
jQuery实现轮播图源码
2019/10/23 jQuery
Django 2.0版本的新特性抢先看!
2018/01/05 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
css3学习心得分享
2013/08/19 HTML / CSS
决定成败的关键——创业计划书
2014/01/24 职场文书
上课睡觉检讨书
2014/01/28 职场文书
弘扬雷锋精神演讲稿
2014/05/10 职场文书
搞笑的获奖感言
2014/08/16 职场文书
公司年底活动方案
2014/08/17 职场文书
企业法人授权委托书
2014/09/25 职场文书
践行三严三实心得体会
2014/10/13 职场文书
司法局群众路线教育实践活动开展情况总结
2014/10/25 职场文书
2015年简历自我评价范文
2015/03/11 职场文书
2015年派出所民警工作总结
2015/04/24 职场文书
历史博物馆观后感
2015/06/05 职场文书
同学聚会感言一句话
2015/07/30 职场文书
小学生作文写作技巧100例,非常实用!
2019/07/08 职场文书
创业计划书之游泳馆
2019/09/16 职场文书
python区块链实现简版工作量证明
2022/05/25 Python