我有一本 Excel 工作簿,其中有 29 个不同的工作表。我使用以下代码将每个工作表保存为单独的 Excel 文件:
from xlrd import open_workbook
from xlwt import Workbook
rb = open_workbook('c:\\original file.xls',formatting_info=True)
for a in range(5): #for example there're only 5 tabs/sheets
rs = rb.sheet_by_index(a)
new_book = Workbook()
new_sheet = new_book.add_sheet('Sheet 1')
for row in range(rs.nrows):
for col in range(rs.ncols):
new_sheet.write(row, col, rs.cell(row, col).value)
new_book.save("c:\\" + str(a) + ".xls")
Run Code Online (Sandbox Code Playgroud)
我从以下位置获得此代码:stackoverflow.com/questions/28873252/python-splitting-an-excel-workbook。它运行良好,但有没有办法可以按工作表名称保存工作簿。所以工作表名称应该是文件的名称。我尝试更换
new_book.save("c:\\" + str(a) + ".xls")
Run Code Online (Sandbox Code Playgroud)
和
new_book.save(sheet.names + str(a) + ".xls")
Run Code Online (Sandbox Code Playgroud)
但这没有用
如果我正确理解你的要求。
您可以将 pandas 与 pd.ExcelFile 一起使用,并将整个工作簿作为字典读取。
import pandas as pd
xl = pd.ExcelFile('c:\\original file.xls')
for sheet in xl.sheet_names:
df = pd.read_excel(xl,sheet_name=sheet)
df.to_excel(f"{sheet}.xls",index=False)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11512 次 |
| 最近记录: |