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程序中操作文件之flush()方法的使用教程
May 24 Python
python获取各操作系统硬件信息的方法
Jun 03 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
Sep 21 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
python爬虫面试宝典(常见问题)
Mar 02 Python
python Celery定时任务的示例
Mar 13 Python
一些Centos Python 生产环境的部署命令(推荐)
May 07 Python
Python设计模式之策略模式实例详解
Jan 21 Python
python实现雪花飘落效果实例讲解
Jun 18 Python
详解django中Template语言
Feb 22 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
Jan 27 Python
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
Mar 29 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/02/27 PHP
php三维数组去重(示例代码)
2013/11/26 PHP
php 实现进制相互转换
2016/04/07 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
PHP实现转盘抽奖算法分享
2020/04/15 PHP
PHP使用PDO抽象层获取查询结果的方法示例
2018/05/10 PHP
PHP常见过waf webshell以及最简单的检测方法
2019/05/21 PHP
各种常用浏览器getBoundingClientRect的解析
2009/05/21 Javascript
Prototype PeriodicalExecuter对象 学习
2009/07/19 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
2013/12/24 Javascript
jquery+json实现动态商品内容展示的方法
2016/01/14 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
2017/02/13 Javascript
使用 Vue.js 仿百度搜索框的实例代码
2017/05/09 Javascript
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
深入Node TCP模块的理解
2019/03/13 Javascript
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
python如何使用unittest测试接口
2018/04/04 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
Python字符串的常见操作实例小结
2019/04/08 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
python障碍式期权定价公式
2019/07/19 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
python实现密码验证合格程序的思路详解
2020/06/01 Python
介绍一下Transact-SQL中SPACE函数的用法
2015/09/01 面试题
一套软件开发工程师笔试题
2015/05/18 面试题
八年级音乐教学反思
2014/01/09 职场文书
市场策划求职信
2014/08/07 职场文书
2014国庆节标语口号
2014/09/19 职场文书
科学育儿宣传标语
2014/10/08 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
红与黑读书笔记
2015/06/29 职场文书
2019年最新七夕唯美祝福语(60条)
2019/07/22 职场文书
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL
微前端qiankun改造日渐庞大的项目教程
2022/06/21 Javascript