前言
记录一下,在使用
pandas
处理excel表格
表格时候,关于分割(切分)表格这一块儿的操作。
这个系列会有三篇左右文章,这是第一篇,excel表格
切割
我们常说的 excel文件
,
- 在广义上,是指以
xls
或xlsx
为后缀的文件。(xls
和xlsx
分别为新旧版本的excel
生成的文件格式 - 在狭义上,是指Microsoft公司编写的一款电子表格软件。
不论如何,这些知识知道了总不会有坏处。
关于excel
的分割这一块儿,像wps
软件,做的是非常优秀的,一键即可根据内容
或sheet
表进行分割。
既然它已经这么优秀了,那为啥还写这篇文章呢?对啊!为什么呢?为什么你还会查阅这篇文章呢!!!
解决问题🐓🐓
使用python
对excel表格
进行分割然后保存,分别为
-
单个sheet,根据内容分割(保存为多sheet或多
excel文件
-
多个sheet,根据sheet分割(保存为多
excel文件
-
带格式的excel切割,看这篇文章:【Python】openpyxl 复制带格式的Excel 表格
安装模块
pip install openpyxl
pip install pandas
知识点📖📖
pandas
类型 | 链接 |
---|---|
文档 | 官方文档:https://pandas.pydata.org |
视频 | 视频总结:https://www.bilibili.com/video/BV1PZ4y1U7Y7 |
项目地址 | 项目地址:https://github.com/Frica01/BlogCode/tree/main/excel-operation |
代码
这里给出伪代码,可以运行。如需配套练习的
excel文件
,可从这里获取 excel-operation
单sheet execl表格
一般在根据内容作为分割时候,是指定excel表
中某一列的值去做分割。
分割为多个sheet
def split_single_sheet_to_multi_sheet(file_path, column, sheet_name=0):
"""
单个sheet的excel文件切分成多个sheet的excel文件
Args:
file_path(str): excel文件路径
column(str): 指定分割的列
sheet_name(int|str): sheet的名称
Returns: None
"""
# 处理文件导出路径
output_file_path = f'./output/{os.path.basename(file_path)}'
if not os.path.exists('./output'):
os.makedirs(name='./output')
# 打开excel文件
df = read_excel(io=file_path, sheet_name=sheet_name)
# 写入多个sheet倒excel文件中
with ExcelWriter(path=output_file_path) as writer:
# 指定列
for group in df.groupby(by=column):
column_name, group_df = group
column_name: str
group_df: DataFrame
group_df.to_excel(excel_writer=writer, sheet_name=column_name, index_label=False)
分割为多个excel文件
def split_single_sheet_to_multi_excel(file_path, column, sheet_name=0):
"""
单个sheet的excel文件切分为多个excel文件
Args:
file_path(str): excel文件路径
column(str): 指定分割的列
sheet_name(int|str): sheet的名称
Returns: None
"""
# 处理文件导出路径
if not os.path.exists('./output'):
os.makedirs(name='./output')
# 打开excel文件
df = read_excel(io=file_path, sheet_name=sheet_name)
# 指定列
for group in df.groupby(by=column):
column_name, group_df = group
column_name: str
group_df: DataFrame
group_df.to_excel(excel_writer=f'./output/{column_name}.xlsx', sheet_name=column_name, index=False)
多sheet execl表格
分割为多个excel文件
def split_multi_sheet_to_multi_excel(file_path, sheet_name=0):
"""
多个sheet的excel文件切分为多个excel文件
Args:
sheet_name(int|str): sheet的名称
file_path(str):
Returns: None
"""
# 处理文件导出路径
if not os.path.exists('./output'):
os.makedirs(name='./output')
# 打开文件
df = read_excel(io=file_path, sheet_name=sheet_name)
# 循环操作当前的所有sheet
for sheet_name in list(df.keys()):
sub_df = df[sheet_name]
sub_df.to_excel(excel_writer=f'./output/{sheet_name}.xlsx', sheet_name=sheet_name, index=False)
带格式的 excel文件
值得注意是,以上的表格切割,只针对数据,数据的格式是无法体现在分割后的excel文件
上的。
所以,如果你需要带格式的excel切割,参照下面文章,当然,也是俺写的。
看此文章:https://frica.blog.csdn.net/article/details/124144987
后话
本次分享到此结束,如有疑问请自行解决。
see you~🐱🏍🐱🏍