复制代码
为懒人提供无限可能,生命不息,code不止
人类感性的情绪,让我们知难行难
我思故我在
日拱一卒,功不唐捐
首页
前端
后台
数据库
运维
资源下载
实用工具
接口文档工具
登录
注册
其它
【原创】python小工具-excel文件拆分
作者: whooyun
发表于:
2025-08-30 10:39
import
pandas
as
pd
import
os
def
split_excel_by_rows
(
input_file
,
output_dir
,
chunk_size
=
40000
):
"""
拆分Excel文件为多个子文件
:param input_file: 原始Excel文件路径
:param output_dir: 输出目录
:param chunk_size: 每个文件最大行数(默认4万)
"""
try
:
# 读取整个Excel文件
df
=
pd
.
read_excel
(
input_file
)
total_rows
=
len
(
df
)
# 计算需要拆分的文件数量
num_files
=
total_rows
//
chunk_size
+
(
1
if
total_rows
%
chunk_size
else
0
)
# 准备基础文件名
base_name
=
os
.
path
.
splitext
(
os
.
path
.
basename
(
input_file
))[
0
]
os
.
makedirs
(
output_dir
,
exist_ok
=
True
)
# 分块写入
for
i
in
range
(
num_files
):
start
=
i
*
chunk_size
end
=
min
((
i
+
1
)
*
chunk_size
,
total_rows
)
output_path
=
os
.
path
.
join
(
output_dir
,
f
"
{
base_name
}
_part
{
i
+
1
}
.xlsx"
)
df
.
iloc
[
start
:
end
].to_excel(
output_path
,
index
=
False
)
print
(
f
"生成文件:
{
output_path
}
| 记录数:
{
end
-
start
}
"
)
print
(
f
"
\n
拆分完成 总文件数:
{
num_files
}
总记录数:
{
total_rows
}
"
)
except
Exception
as
e
:
print
(
f
"处理失败:
{
str
(
e
)
}
"
)
# 使用示例
if
__name__
==
"__main__"
:
# 修改为实际文件路径
split_excel_by_rows
(
input_file
=
r
"C:
\U
sers
\tt
\Downloads
\待
导出文件
- 副本.xlsx"
,
output_dir
=
r
"D:\work_doc\data
\041
7-05"
)