Python 自动化之修理excel文件(一)

excel文件的工作表拆分



前言

本文就简单介绍一下,如何将含有多个sheet表的excel文档–按照顺序–在指定目录下–将每个excel表保存成一个单独的文档;且新建的文档也会以工作表的名字来命名。


一、需要引入哪些库

代码如下:

from openpyxl import load_workbook
import pandas as pd

load_workbook:主要用来读取包含多个工作表的Excel文件
pd:创建一个新的DataFrame(用于表达二维数据)来存储数据


二、用户输入模块

代码如下:

print('请输入excel文档完整路径(例子:E:\BaiduNetdiskDownload\你好.xlsx):', end='')
excel_path = input()

print('打算在哪个目录下批量生成(例子:D:\dsest):', end='')
parent_directory = input()

第一块代码:按照提示的格式输入相应的excel文档。
第二块代码:输入要在哪个目录保存拆分的文件。


三、读取excel文档信息

代码如下:

# 读取包含多个工作表的Excel文件
wb = load_workbook(excel_path)

# 获取所有工作表的名字
sheet_names = wb.sheetnames

先是读取整个文档的信息,然后从中获取它的工作表的名字。下面会根据这个工作表的名字来做文章。


四、遍历保存工作表

这个的思路是:每遍历一个工作表,就会获取它的数据,然后生成新的excel文档保存它的数据,直至遍历完所有的工作表。

注意:以下代码都是在for循环结构下运行的。

1.获取并暂存工作表信息

代码如下:

i = 0
# 遍历所有工作表并将其保存为单独的Excel文件
for sheet in sheet_names:
    i += 1
    
    #获取工作表的数据
    ws = wb[sheet]
    data = ws.values 
    
    # 创建一个新的DataFrame来存储数据
    df = pd.DataFrame(data)

这里是遍历工作表并获取它的信息。
pd.DataFrame(data)的用处是常用来存储二维数据(懂了吧)。


2.指定路径保存文档

代码如下:

    # 将当前工作表保存为新的Excel文件
    output_file_name = str(f"{
     i}-{
     sheet}.xlsx")
    
    # 添加一个斜杠以确保路径正确
    output_path = parent_directory + '/' + output_file_name  
    
    #保存文档
    df.to_excel(output_path)

第一段代码:给新文档个名字
第二段代码:将用户输入的路径和名字组合起来。
第三段代码:根据第二段提供的信息,相应的生成文件。


总结

代码不多,很容易实现,小伙伴们快来试一下。
下篇我出个稍微复杂一点的,如何自动的去读取一个目录里的所有excel文档并合成一个文档。

在这里插入图片描述

相关推荐

  1. Python自动打开Excel文件

    2023-12-13 11:08:02       14 阅读
  2. Python系列excel的读取

    2023-12-13 11:08:02       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-13 11:08:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-13 11:08:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-13 11:08:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-13 11:08:02       20 阅读

热门阅读

  1. C++友元函数和友元类(C++ friend关键字)

    2023-12-13 11:08:02       36 阅读
  2. C++ 学习系列 -- conversion function

    2023-12-13 11:08:02       34 阅读
  3. 接口优化思路 - 接口防抖

    2023-12-13 11:08:02       32 阅读
  4. day14 二叉树(一)

    2023-12-13 11:08:02       41 阅读
  5. Qt 面试指南

    2023-12-13 11:08:02       32 阅读
  6. 【Linux】CentOS部分命令

    2023-12-13 11:08:02       36 阅读
  7. leetcode19. 删除链表的倒数第 N 个结点

    2023-12-13 11:08:02       31 阅读
  8. 和为K的子数组(LeetCode 560)

    2023-12-13 11:08:02       39 阅读
  9. Docker笔记:关于Dockerfile及构建镜像

    2023-12-13 11:08:02       42 阅读
  10. centos7部署docker环境

    2023-12-13 11:08:02       36 阅读