python利用openpyxl拆分多个工作表的工作簿的方法

  • Post category:Python

下面我将详细讲解如何利用openpyxl拆分多个工作表的工作簿的方法。以下是完整的实例教程:

1.安装openpyxl模块

首先,我们需要安装openpyxl模块。在命令行中输入以下命令:

pip install openpyxl

2.读取工作簿

接着,我们需要使用openpyxl模块读取整个工作簿。下面是一个简单的示例:

import openpyxl

workbook = openpyxl.load_workbook('example.xlsx')

在这个示例中,我们使用load_workbook()函数从名为”example.xlsx”的工作簿中读取数据。当然,你需要将示例中的文件名替换成你自己的文件名。

3.遍历所有工作表

一旦我们成功读取了整个工作簿,就可以开始遍历所有工作表,并将它们分别保存为不同的工作簿。下面是示例代码:

for sheet_name in workbook.sheetnames:
    # 以每个工作表的名字作为新文件的文件名
    new_filename = sheet_name + '.xlsx'

    # 创建新的工作簿
    new_workbook = openpyxl.Workbook()

    # 获取当前工作表
    worksheet = workbook[sheet_name]

    # 将当前工作表的所有行和列复制到新的工作簿中
    for row in worksheet.iter_rows():
        new_workbook.active.append([cell.value for cell in row])

    # 保存新的工作簿
    new_workbook.save(new_filename)

在这个示例中,我们首先遍历了所有工作表,然后创建新的工作簿,并获取当前工作表。接着,我们复制了当前工作表的所有行和列到新的工作簿中,并将其保存为新的文件。可以看到,我们在创建新的工作簿时使用了openpyxl.Workbook()函数,来创建一个新的工作簿实例。

4.运行示例代码

现在,我们已经完成了完整的示例代码。你可以将以上代码复制到你的Python IDE中,然后运行它。运行代码时需要将example.xlsx文件放在同级目录下。运行结果将会在同级目录下创建多个新文件,每个文件对应工作簿中的一个工作表。

5.示例说明

以上示例演示了如何使用openpyxl模块拆分多个工作表的工作簿的方法。如果你想了解更多openpyxl模块的知识和应用,请参阅openpyxl官方文档。同时,我还提供了以下两条示例说明,希望可以帮助你更好地理解openpyxl模块的功能和应用:

示例1:拆分单个工作表

如果你只想拆分工作簿中的单个工作表,可以参考以下示例代码:

import openpyxl

# 读取整个工作簿
workbook = openpyxl.load_workbook('example.xlsx')

# 获取需要拆分的工作表
worksheet = workbook['Sheet1']

# 创建新的工作簿
new_workbook = openpyxl.Workbook()

# 将当前工作表的所有行和列复制到新的工作簿中
for row in worksheet.iter_rows():
    new_workbook.active.append([cell.value for cell in row])

# 保存新的工作簿
new_workbook.save('new_worksheet.xlsx')

在这个示例中,我们首先使用load_workbook()函数读取整个工作簿,并获取需要拆分的工作表。接着,我们创建了一个新的工作簿,并将当前工作表的所有行和列复制到新的工作簿中。最后,我们将新的工作簿保存为”new_worksheet.xlsx”。

示例2:拆分多个工作表并指定保存路径

如果你想将拆分后的工作表保存到指定的文件路径下,可以参考以下示例代码:

import openpyxl

# 读取整个工作簿
workbook = openpyxl.load_workbook('example.xlsx')

# 遍历所有工作表
for sheet_name in workbook.sheetnames:
    # 以每个工作表的名字作为新文件的文件名
    new_filename = sheet_name + '.xlsx'

    # 创建新的工作簿
    new_workbook = openpyxl.Workbook()

    # 获取当前工作表
    worksheet = workbook[sheet_name]

    # 将当前工作表的所有行和列复制到新的工作簿中
    for row in worksheet.iter_rows():
        new_workbook.active.append([cell.value for cell in row])

    # 拼接保存路径
    save_path = 'path/to/save/' + new_filename

    # 保存新的工作簿
    new_workbook.save(save_path)

在这个示例中,我们遍历了所有工作表,并将拆分后的工作表保存到指定的路径下。在拼接保存路径时,你需要将”path/to/save/”替换为你自己的保存路径。

希望这些示例可以帮助你更好地理解openpyxl模块的功能和应用。如果你有任何问题或疑问,欢迎随时联系我。