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



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

我从stackoverflow.com/questions/2887352/python-splitting-an-excel-workbook获得了这段代码。它运行得很好,但有没有一种方法可以按工作表名称保存工作簿。因此工作表名称应该是文件的名称。我试着更换

new_book.save("c:\" + str(a) + ".xls")

带有

new_book.save(sheet.names + str(a) + ".xls")

但它不起作用

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

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

最新更新