例子:
需要拆分的表,如图
拆分后:
思路:
1.获取需要拆分的文件的路径
def get_path_name(path):
#获取文件路径,文件名(带后缀)
(filepath,tempfilename)=os.path.split(path)
#获取文件名(不带后缀),文件后缀
(shortname,suffix)=os.path.splitext(tempfilename)
# print(filepath)
# print(tempfilename)
# print(shortname)
# print(suffix)
return filepath
2.打开需要拆分的文件
wb=openpyxl.load_workbook(path)
3.获取每个sheet表的数据
#获取原文件sheet表的内容.以文本的形式读取,防止有较长的数字字符串,如订单号之类
sheet_data = pd.read_excel(path, sheet_name=i,dtype=str)
#填充没有数据的格子
sheet_data.fillna('')
4.将每个sheet表存为一个新的xlsx文件,文件名为sheet表名
#将文件的sheet表名作为新xlsx文件的文件名
path2 = get_path_name(path) + "\\" + i + ".xlsx"
print(path2)
sheet_data.to_excel(path2,sheet_name=i,index=False)
代码汇总:
import openpyxl
import os
import pandas as pd
def get_exceldata(path):
wb=openpyxl.load_workbook(path)
print(wb.sheetnames)
for i in wb.sheetnames:
#获取原文件sheet表的内容
sheet_data = pd.read_excel(path, sheet_name=i,dtype=str)
sheet_data.fillna('')
#将文件的sheet表名作为新xlsx文件的文件名
path2 = get_path_name(path) + "\\" + i + ".xlsx"
print(path2)
sheet_data.to_excel(path2,sheet_name=i,index=False)
def get_path_name(path):
#获取文件路径,文件名(带后缀)
(filepath,tempfilename)=os.path.split(path)
#获取文件名(不带后缀),文件后缀
(shortname,suffix)=os.path.splitext(tempfilename)
# print(filepath)
# print(tempfilename)
# print(shortname)
# print(suffix)
return filepath
if __name__ == '__main__':
path=input("输入需要拆分的文件(可直接拖入):")
# path=r"C:\Users\Desktop\测试数据.xlsx"
get_exceldata(path)