【办公自动化】使用Python批量处理Excel文件并转为csv文件

简介: 【办公自动化】使用Python批量处理Excel文件并转为csv文件

前言


       今天一位正在国企实习的朋友突然私信找到我,说领导派了个离谱的活,大概就是需要将一个大文件夹里面的excel文件进行简单处理后再转为csv格式的文件,然后这个大文件里面有五个二级文件夹,这五个二级文件夹里面都有一个三级文件夹,然后每个三级文件夹里面都有14-18个四级文件夹,每个四级文件夹里面有31个excel文件和极少量csv文件夹。听起来层级是不是特别饶,而且加起来总共有2000多个excel文件。处理的话是将表格中的时间列格式进行转换,最后存储为csv文件。这要是人工一个一个文件弄,这得累死人,这种重复的工作当然是交给脚本啦!


一、Python处理Excel


  • Python处理Excel的好处


1.批量操作:当要处理众多Excel文件时,例如出现重复性的手工劳动,那么使用Python就可以实现批量扫描文件、自动化进行处理,利用代码代替手工重复劳动,实现自动化,是Python第一个比Excel强大的地方

2.大型文件,当Excel文件超过几十兆、甚至上百兆时,打开文件很慢、处理文件更加慢,这时候若使用Python,会发现处理几十兆、几百兆甚至几GB都是没有问题的

3.当使用Excel进行复杂的计算时,会使用VBA,但是VBA本身是过时并且复杂的语言,Python是当前最简单且容易实现的一门语言,用Python能够处理比VBA难度更高的业务逻辑

4.Python是通用语言,不仅可以处理Excel,使用Python就可以得到很多额外的功能,例如:爬虫、发布网页的Web服务、与数据库进行连接、同时结合word和PPT进行处理、加入定时任务处理、人工智能分析等,各种额外的功能,这是Excel和VBA所不具备的


  • Python处理Excel主要有三大类库


1.pandas:是Python领域非常重要的,用于数据分析和可视化的类库,在处理Excel中,90%可以利用pandas类库就可以搞掂,利用pandas就可以读取Excel、处理Excel和输出Excel,但是pandas也有缺点,就是无法做到格式类,例如Excel中合并单元、大量复杂的样式(看起来很精美)的时候,用pandas无法搞掂,此时,依然是使用pandas结合openyxl、xlwings来搞掂需求

2.openpyxl:若电脑上未安装office时,也可以使用openpyxl,这个类型可以运行在linux上,并且也可以实现操作大部分Excel格式和样式的功能,使用它配合pandas,也可以完成大部分场景的需求

3.xlwings:比openyxl更加强大,只能运行在Windows或者Mac系统,并且该系统中必须安装了office才能运行,xlwings的原理,就是基于当前系统已经安装好的office软件,来进行功能的拓展来操作Excel


  • 使用pandas的时候,经常会结合其他类库,来完成更加复杂的功能


requests, bs4:可以完成爬虫的功能

flask:可以做网页,把表格展示在网页上

Matplotlib:读取表格后,进行可视化

sklearn:进行复杂的数据分析时,也可以结合机器学习Sklearn把读取的Excel数据,进行数据分析和机器学习

Python-docx:也可以结合Python-docx类库,实现Excel和word的互通

smtplib:也可以使用smtplib,讲Excel数据发送邮件出去


  • 开发环境


操作系统:使用windows, mac都可以


Python版本:系统中需要安装Python3.6以上的版本,Python2已经过期不建议使用,Python3.6以前的版本功能相对弱,最好就是采用Python3.6以上的版本


开发工具:有两个可以选择,jupyter notebook,是个网页编辑器,可以运行Python,常常用于交互性、探索性的开发;pycharm,用于成熟脚本,或者web服务的一些开发;这两个工具可以随意选择。


二、批量处理Excel文件并转为csv文件


技术工具:


Python版本:3.9


代码编辑器:jupyter notebook


处理思路


写代码之前我们首先需要针对这个需求在脑子里做出一个流程图出来,大概就是使用os库层层遍历文件夹,当遍历到excel文件这一级路径时,我们使用pandas读取excel文件,将time时间列转为时间序列类型并符合要求格式,接着使用pandas将处理后的文件保存为csv文件并输出在同一路径下,最后再将原始excel文件进行删除即可。


处理过程


首先看一下文件夹路径结构


然后我写的脚本与sample_data在同一级


具体脚本代码如下:

import pandas as pd
import os
from datetime import datetime
# 基础文件夹路径
base_dir = './sample_data'
# 循环遍历到每一个excel文件并修改其文件类型为csv
for first_floor in os.listdir(base_dir):  # 遍历第一层
    second_floor_dir = base_dir+'/'+first_floor  # 获取第二层的文件路径
    for second_floor in os.listdir(second_floor_dir):  # 遍历第二层
        third_floor_dir = base_dir+'/'+first_floor+'/'+second_floor  # 获取第三层的文件路径
        for third_floor in os.listdir(third_floor_dir):  # 遍历第三层
            fourth_floor_dir = base_dir+'/'+first_floor+'/'+second_floor+'/'+third_floor  # 获取第四层的文件路径
            for file_dir in os.listdir(fourth_floor_dir):  # 遍历第四层
                file_name = file_dir.split('.')[0]  # 获取excel文件名称
                file_suffix = file_dir.split('.')[1]  # 获取excel文件后缀
                print(fourth_floor_dir)
                if file_suffix=='xlsx' or file_suffix=='xls': # 判断文件是否是excel文件
                    df = pd.read_excel(fourth_floor_dir+'/'+file_dir)  # 读取excel文件
                    df['Time'] = pd.to_datetime(df['Time'])
                    df['Time'] = df['Time'].apply(lambda x:datetime.strftime(x,'%Y-%m-%d %H:%M:%S'))
                    df.to_csv(fourth_floor_dir+'/'+file_name+'.csv',index=False)  # 将excel文件保存为csv文件
                    os.remove(fourth_floor_dir+'/'+file_dir)  # 删除原来的excel文件


首先定义基础文件夹路径,接着使用os.listdir()获取文件夹列表,嵌套四层循环即可到达excel文件的路径下,然后使用字符串切割获取文件名和后缀,判断后缀是否为excel文件,是的话就使用pandas读取数据,然后转换列类型并转为要求格式,最后保存为csv文件并删除原来excel文件。运行之后就大功告成啦!


       最后还得到了朋友的肯定,其实学Python并不一定要去做程序员,像这种办公软件(excel、PPT、word)在公司里都是必备技能,但是当要处理的文件太多或者都是一些重复性的工作,那此时你用Python写个自动化脚本来做,省时又省力,提高工作效率,同时还能获得领导的欣赏。


三、往期推荐


Python提取pdf中的表格数据(附实战案例)

使用Python自动发送邮件

Python操作ppt和pdf基础

Python操作word基础

Python操作excel基础

使用Python一键提取PDF中的表格到Excel

目录
相关文章
|
7天前
|
文字识别 BI
【图片型PDF】批量识别扫描件PDF指定区域局部位置内容,将识别内容导出Excel表格或批量改名文件,基于阿里云OCR对图片型PDF识别改名案例实现
在医疗和政务等领域,图片型PDF文件(如病历、报告、公文扫描件)的处理需求广泛。通过OCR技术识别这些文件中的文字信息,提取关键内容并保存为表格,极大提高了信息管理和利用效率。本文介绍一款工具——咕嘎批量OCR系统,帮助用户快速处理图片型PDF文件,支持区域识别、内容提取、导出表格及批量改名等功能。下载工具后,按步骤选择处理模式、进行区域采样、批量处理文件,几分钟内即可高效完成数百个文件的处理。
49 8
|
1月前
|
数据可视化 数据挖掘 大数据
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。
|
2月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
234 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
2月前
|
存储 人工智能 人机交互
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
PC Agent 是上海交通大学与 GAIR 实验室联合推出的智能 AI 系统,能够模拟人类认知过程,自动化执行复杂的数字任务,如组织研究材料、起草报告等,展现了卓越的数据效率和实际应用潜力。
223 1
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
|
2月前
|
机器学习/深度学习 前端开发 数据处理
利用Python将Excel快速转换成HTML
本文介绍如何使用Python将Excel文件快速转换成HTML格式,以便在网页上展示或进行进一步的数据处理。通过pandas库,你可以轻松读取Excel文件并将其转换为HTML表格,最后保存为HTML文件。文中提供了详细的代码示例和注意事项,帮助你顺利完成这一任务。
105 0
|
2月前
|
Python
批量将不同的工作簿合并到同一个Excel文件
本文介绍如何使用Python的`pandas`库批量合并不同工作簿至同一Excel文件。通过模拟生成三个班级的成绩数据,分别保存为Excel文件,再将这些文件合并成一个包含所有班级成绩的总成绩单。步骤包括安装必要库、生成数据、保存与合并工作簿。
71 6
|
2月前
|
Python
按条件将Excel文件拆分到不同的工作表
使用Python的pandas库,可以轻松将Excel文件按条件拆分为多个工作表。本文通过一个具体示例,展示了如何根据学生班级将成绩数据拆分到不同的工作表中,并生成一个包含总成绩表和各班级成绩表的Excel文件。代码简洁明了,适合初学者学习和应用。
64 6
|
2月前
|
Python
按条件将Excel文件拆分到不同的工作表
使用Python的pandas库,可以轻松将Excel文件按条件拆分到不同的工作表中。本文通过一个示例代码展示了如何生成一个包含总成绩表和三个班级表的Excel文件。代码首先创建了一个包含学生姓名、班级和各科成绩的数据框,然后按班级分组,将每个班级的数据分别写入不同的工作表。最后,生成的Excel文件将包含四个工作表,分别为总成绩表和三个班级的成绩表。
52 6
按条件将Excel文件拆分到不同的工作表
|
27天前
|
存储 数据采集 数据处理
如何在Python中高效地读写大型文件?
大家好,我是V哥。上一篇介绍了Python文件读写操作,今天聊聊如何高效处理大型文件。主要方法包括:逐行读取、分块读取、内存映射(mmap)、pandas分块处理CSV、numpy处理二进制文件、itertools迭代处理及linecache逐行读取。这些方法能有效节省内存,提升效率。关注威哥爱编程,学习更多Python技巧。
|
6月前
|
SQL JSON 关系型数据库
n种方式教你用python读写excel等数据文件
n种方式教你用python读写excel等数据文件
98 1

热门文章

最新文章

推荐镜像

更多