excel里面有很多个工作表,怎么用python,给每个表独立出单独的新表,并表名为文件名
你的python版本是什么,我试了一下,是不报错的我的版本是3.5。应该和你的python版本有关系,有可能openpyxl在最新的版本下有bug。
同求大佬!!!
#-*- coding:utf-8 -*-
import pandas as pd
filename = r'输入文件.xlsx'
f = pd.ExcelFile(filename)
for n in f.sheet_names:
print(n)
d = pd.read_excel(filename, sheet_name=n)
d.to_excel(f"{n}.xlsx",index=False,sheet_name=n)
或者是
#-*- coding:utf-8 -*-
import pandas as pd
filename = r'输入文件.xlsx'
f = pd.ExcelFile(filename)
for n in f.sheet_names:
print(n)
d = f.parse(sheet_name=n)
d.to_excel(f"{n}.xlsx",index=False,sheet_name=n)
import pandas as pd
# 最终生成了一个字典,每个key就是sheet_name,每个value就是对应的表格:
dict_save={}
# 导入自己路径的文件:
test = pd.ExcelFile(r'*/test.xlsx')
# 获取总excel文件所有的sheet名称,存储到list中:
sheet_name=test.sheet_names
# 对每个sheet进行操作:
for i in range(len(sheet_name)):
cache_pandas = pd.read_excel(r'*/test.xlsx', sheet_name=sheet_name[i])
dict_save_cache={sheet_name[i]:cache_pandas}
# 最终得到字典,以后操作可能会用到:
dict_save.update(dict_save_cache)
# 每个sheet保存到以sheet名称命名的excel中,并且每个excel的sheet名称不变:
cache_pandas.to_excel(f'*/{sheet_name[i]}.xlsx',index=False,sheet_name=sheet_name[i])
能增加输出路径,文件保留原有格式吗
输出路径这样写
d.to_excel(f"d:test/{n}.xlsx",index=False,sheet_name=n)
原有的表格内容格式能有办法保留吗?
好的,晚上试试
#-*- coding:utf-8 -*-
import openpyxl
filename = r'输入文件.xlsx'
i = 0
while True:
book = openpyxl.load_workbook(filename)
li = book.sheetnames
for j,n in enumerate(li):
if j != i:
del book[n]
book.save(fr"d:test\{li[i]}.xlsx")
print(li[i])
i += 1
if i>=len(li):
break
格式是保留了,但是运行一次分出一个表格,不是一次性全部分完的,而且运行速度很慢@天际的海浪
就是每循环一次分出一个表格啊。多循环几次就行了
我有几十个表,按这个循环的速度和点击,还没有有手动另存为新表快哦
人家帮你解决了问题 你不采纳是真滴坑
不是不采纳,是没有解决问题
可以增加另存为路径吗?