当前位置: 首页 > news >正文

python数据分析文件夹篇--pandas,openpyxl,xlwings三种方法批量创建、 复制、删除工作表

前言

之前我们学习了使用pandas灵活地读取数据,包括读取工作簿中一个或几个工作表,读取工作表中一行或多行,一列或多列数据,还学习了如何将数据灵活保存到本地。
今天我们学习一下文件夹中文件的批量处理操作,包括批量生成表格,复制表格,设置路径等等一系列操作。

一、批量创建工作表

在这里插入图片描述
我们这边先在E盘创建一个空白的文件夹

1.pandas批量生成表格

接着在pycharm中输入以下的代码:

import pandas as pd
for i in range(1,4):
    df=pd.DataFrame()
    df.to_excel(rf"E:\Python文件夹篇\new{i}.xlsx")

我们来分析一下代码
第一行:我们导入pandas库

第二行:我们使用rang函数,这个函数会依次生成从最小值到最大值中间的数,比如我们的range(1,4),它会生成1,2,3这三个数,也就是说包括最小值,不包括最大值

第三行和第四行:range函数每生成一个数,就执行一次操作,一次操作包括创建一个新的表格,然后把表格保存到E盘Python文件夹篇这个文件夹里面,同时新创建的表格的名字叫做new{i}.xlsx,这里的i是一个变量,它的值就是range函数生成的值
比如第一次range函数生成第一个数字1,那么就会执行一次操作生成一个叫做new1.xlsx的表格

我们运行上面的代码后,结果如下:
在这里插入图片描述
可以看到,在之前空白的文件夹多了new1,new2,new3这三个表

2.xlwings批量生成表格

我们在pycharm输入下面的代码;

import xlwings as xw
app=xw.App(visible=False,add_book=False)
for i in range(4,7):
    wb=app.books.add()
    wb.save(rf"E:\Python文件夹篇\new{i}.xlsx")
    wb.close()
app.quit()

点击运行后结果如下:
在这里插入图片描述
可以看到我们在上面的new1,new2,new3的基础上,又生成了new4,new5,new6这三个工作表
鉴于现在还没有讲xlwings库的使用方法,所以这里就不一一解释每一行代码的意思了
大家只需要知道pandas,xlwings,openpyxl这三个库都有自己最擅长的领域,同时这三个库都可以批量创建空白表格就行

3.openpyxl批量生成表格

from openpyxl import Workbook
for i in range(7,10):
    wb=Workbook()
    wb.save(rf"E:\Python文件夹篇\new{i}.xlsx")

我们输入下面的代码然后点击运行
在这里插入图片描述
这样我们又生成了三个新的表格,new7,new8,new9
openpyxl的代码和pandas的代码几乎一样,只是生成表格的方法不一样而已
因此在这里也不多赘述

二、将一个工作表复制到另一个工作表中

现在我们在python数据分析这个文件夹新增两个表格,一个表格叫做华东,另一个表格叫做订单表,如下
在这里插入图片描述
其中,订单表的内容如下:
在这里插入图片描述
里面只有一个sheet1

华东的内容如下:
在这里插入图片描述
这里面有九个工作表
现在我们需要做的就是把华东这个工作簿中的“上海”这个工作表复制到订单表这个工作簿中

1.xlwings库复制单个工作表

我们在pycharm中输入下面的代码

import xlwings as xw
app=xw.App(visible=False,add_book=False)
filename1=r"E:\Python文件夹篇\华东.xlsx"
filename2=r"E:\Python文件夹篇\订单表.xlsx"
wb1=app.books.open(filename1)
wb2=app.books.open(filename2)
ws1=wb1.sheets["上海"]
ws2=wb2.sheets[0]
ws1.copy(before=ws2)
wb2.save(r"E:\Python文件夹篇\新订单表.xlsx")
wb1.close()
wb2.close()

点击运行后,结果如下:
在这里插入图片描述

我们会得到一个新的表格:新订单表.xlsx
打开表格后,内容如下:
在这里插入图片描述
这样一来我们就成功将华东.xlsx这个工作簿中的“上海”这个工作表进行复制了

2.xlwings库复制多个工作表

那么问题来了,上面我们讲了如何复制华东工作簿中的一个工作表,那如果要复制多个工作表呢?
比如我们想把华东这个工作簿中的九个工作表都复制到订单表中,怎么做呢?
我们输入以下代码:

import xlwings as xw
app=xw.App(visible=False,add_book=False)
filename1=r"E:\Python文件夹篇\华东.xlsx"
filename2=r"E:\Python文件夹篇\订单表.xlsx"
wb1=app.books.open(filename1)
wb2=app.books.open(filename2)
ws1=wb1.sheets
ws2=wb2.sheets[0]
for s in ws1:
    s.copy(after=ws2)

wb2.save(r"E:\Python文件夹篇\新订单表111.xlsx")
wb1.close()
wb2.close()

点击运行后,我们可以看到文件夹中多了一个表格:新订单表111.xlsx
打开表格,内容如下:
在这里插入图片描述

可以看到新工作表中成功复制进了华东.xlsx这个工作簿中全部的九个工作表

3.openpyxl库复制工作表

我们在pycharm中输入下面代码;

import openpyxl
wb1=openpyxl.load_workbook(r"E:\Python文件夹篇\华东.xlsx")
wb2=openpyxl.load_workbook(r"E:\Python文件夹篇\订单表.xlsx")
ws1=wb1["上海"]
ws2=wb2.create_sheet()
ws2.title="复制的表格_上海"
for i in range(1,ws1.max_row+1):
    for j in range(1,ws1.max_column+1):
        ws2.cell(row=i,column=j).value=ws1.cell(row=i,column=j).value
wb2.save(r"E:\Python文件夹篇\新订单表222.xlsx")

点击运行后,会生成一个新的工作表:新订单表222.xlsx

在这里插入图片描述
打开新订单表222.xlsx,内容如下:
在这里插入图片描述
可以看到我们成功复制表格,并且将复制的表格命名为了:复制的表格_上海
那么如何使用openpyxl来复制多个工作表呢?
聪明的小伙伴们,这个问题就留给大家去思考了。
相信认真阅读了这篇文章的朋友一定可以相出办法的。

总结

今天我们学习了如何使用pandas,openpyxl和xlwings这三个库批量地生成和复制表格,收获满满。
后续会继续更新python数据分析的其它内容,包括如何合并多个表格,如何拆分表格等等。
感兴趣的朋友可以点个赞和关注哟!!!!!

相关文章:

  • JAVA中的多态性以及它在实际编程中的作用
  • 1141. 【贪心算法】排队打水
  • 【2025最新版】如何将fnm与node.js安装在D盘?【保姆级安装及人性话理解教程】
  • git submodule
  • 疗养院管理系统设计与实现(代码+数据库+LW)
  • 动态规划习题代码题解
  • 本地部署量化满血版本deepseek的Ktransformer清华方案的硬件配置
  • 【linux驱动开发】创建proc文件系统中的目录和文件实现
  • win10 win+shift+s 无法立即连续截图 第二次截图需要等很久
  • [RA-L 2023] Coco-LIC:基于非均匀 B 样条的连续时间紧密耦合 LiDAR-惯性-相机里程计
  • API自动化测试实战:Postman + Newman/Pytest的深度解析
  • 深度学习中学习率调整策略
  • java实现智能家居控制系统——入门版
  • vue3怎么和大模型交互?
  • spring security学习入门指引
  • Spring框架详解(IOC容器-上)
  • 【PyTorch教学】pytorch 基本语法
  • WebForms HTML:深入理解与高效运用
  • 并发编程面试题一
  • 《深入剖析:鸿蒙开发工具模拟器在人工智能应用模拟测试中的特性与局限》
  • 广东高州发生山体滑坡,造成2人遇难4人送医救治1人失联
  • 山东茌平民企巨头实控人省外再出手:斥资16亿拿下山西一宗探矿权
  • 埃尔多安:愿在土耳其促成俄乌领导人会晤
  • 一图看懂|印巴交火后,双方基地受损多少?
  • 微软宣布全球裁员约3%:涉及约6000人,侧重经理层
  • 上海市重大工程一季度开局良好,崇明线等按既定计划加快建设