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在Windows8下获取本机ip地址的方法
Mar 14 Python
Python中的Classes和Metaclasses详解
Apr 02 Python
python基于BeautifulSoup实现抓取网页指定内容的方法
Jul 09 Python
python目录与文件名操作例子
Aug 28 Python
Python数据结构与算法之列表(链表,linked list)简单实现
Oct 30 Python
对Python中range()函数和list的比较
Apr 19 Python
python之Flask实现简单登录功能的示例代码
Dec 24 Python
python监控nginx端口和进程状态
Sep 06 Python
Python使用py2neo操作图数据库neo4j的方法详解
Jan 13 Python
Python中socket网络通信是干嘛的
May 27 Python
Node.js 和 Python之间该选择哪个?
Aug 05 Python
python实现录音功能(可随时停止录音)
Oct 26 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/06/06 PHP
php连接oracle数据库及查询数据的方法
2014/12/29 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
php实现微信支付之现金红包
2018/05/30 PHP
PHP get_html_translation_table()函数用法讲解
2019/02/16 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
javascript中window.event事件用法详解
2012/12/11 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
2013/07/16 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
2013/09/26 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
老生常谈javascript变量的命名规范和注释
2016/09/29 Javascript
jquery代码规范让代码越来越好看
2017/02/03 Javascript
原生JS实现垂直手风琴效果
2017/02/19 Javascript
详解组件库的webpack构建速度优化
2018/06/18 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
2018/06/28 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
深入理解Puppeteer的入门教程和实践
2019/03/05 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
轻松实现python搭建微信公众平台
2016/02/16 Python
Python编程给numpy矩阵添加一列方法示例
2017/12/04 Python
推荐10款最受Python开发者欢迎的Python IDE
2018/09/16 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
基于python-pptx库中文文档及使用详解
2020/02/14 Python
python向企业微信发送文字和图片消息的示例
2020/09/28 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
巴西手表购物网站:eclock
2019/03/19 全球购物
职工运动会感言
2014/02/07 职场文书
大学优秀班主任事迹材料
2014/05/02 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
2015银行年终工作总结范文
2015/05/26 职场文书
学习雷锋主题班会
2015/08/14 职场文书
Python获取百度热搜的完整代码
2021/04/07 Python
解决jupyter notebook启动后没有token的坑
2021/04/24 Python
OpenCV实现反阈值二值化
2021/11/17 Java/Android