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 socket函数中,send与sendall的区别与使用方法
May 09 Python
基于Python闭包及其作用域详解
Aug 28 Python
对python GUI实现完美进度条的示例详解
Dec 13 Python
用xpath获取指定标签下的所有text的实例
Jan 02 Python
Appium+python自动化怎么查看程序所占端口号和IP
Jun 14 Python
django 基于中间件实现限制ip频繁访问过程详解
Jul 30 Python
python中seaborn包常用图形使用详解
Nov 25 Python
Selenium向iframe富文本框输入内容过程图解
Apr 10 Python
解决python图像处理图像赋值后变为白色的问题
Jun 04 Python
一篇文章带你搞懂Python类的相关知识
May 20 Python
python 实现两个变量值进行交换的n种操作
Jun 02 Python
自动在Windows中运行Python脚本并定时触发功能实现
Sep 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
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
PHP7 新增常量
2021/03/09 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
AngularJS入门教程(零):引导程序
2014/12/06 Javascript
node.js中的console.timeEnd方法使用说明
2014/12/09 Javascript
JS实现跟随鼠标闪烁转动色块的方法
2015/02/26 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
2016/12/01 Javascript
nodejs基础知识
2017/02/03 NodeJs
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
Vue组件通信实践记录(推荐)
2017/08/15 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
AngularJS 控制器 controller的详解
2017/10/17 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
详解vue中点击空白处隐藏div的实现(用指令实现)
2018/04/19 Javascript
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
[01:05:52]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第一场 2月2日
2021/03/11 DOTA
使用Python从零开始撸一个区块链
2018/03/14 Python
Python的垃圾回收机制详解
2019/08/28 Python
python智联招聘爬虫并导入到excel代码实例
2019/09/09 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
2020/05/22 Python
什么时候用assert
2015/05/08 面试题
先进党支部事迹材料
2014/01/13 职场文书
工作决心书
2014/03/11 职场文书
销售员试用期自我评价
2014/09/15 职场文书
自主招生学校推荐信
2014/09/26 职场文书
听证通知书
2015/04/24 职场文书
nginx部署多前端项目的几种方法
2021/05/25 Servers
Python办公自动化PPT批量转换操作
2021/09/15 Python
Zabbix对Kafka topic积压数据监控的解决方案
2022/07/07 Servers