将 Excel 工作簿拆分为多个 Excel 文件

Tam*_*rie 5 python pandas

我有一本 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)

但这没有用

Dat*_*ice 7

如果我正确理解你的要求。

您可以将 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)