Python批量处理工作簿和工作表的实现示例

  • Post category:Python

下面是详细的Python批量处理工作簿和工作表的实现示例教程。

标题

子标题

这里介绍的是如何使用Python实现批量处理工作簿和工作表。下面的示例说明可以帮助你更好地理解并掌握这个过程。

示例一

这个示例演示了如何使用Python批量读取一个文件夹中的所有Excel工作簿,并以CSV格式将每个工作表保存在一个单独文件中。

import os
import pandas as pd

input_folder = "path/to/input/folder"
output_folder = "path/to/output/folder"

for filename in os.listdir(input_folder):
    if filename.endswith(".xlsx") or filename.endswith(".xls"):
        # read excel workbook
        wb = pd.read_excel(os.path.join(input_folder, filename), sheet_name=None)
        # save each sheet as a separate csv file
        for sheet_name, df in wb.items():
            output_file = os.path.join(output_folder, f"{filename}_{sheet_name}.csv")
            df.to_csv(output_file, index=False, encoding="utf-8-sig")

这个示例使用pandas库的read_excel函数来读取Excel工作簿,使用sheet_name设置参数为None,表示读取所有工作表。然后我们遍历每个工作表并将其保存为单独的CSV文件。需要注意的是,我们使用了一个utf-8-sig编码来确保文件以UTF-8格式保存,这是因为Excel的默认编码与UTF-8不兼容。

示例二

这个示例演示了如何使用Python批量合并Excel工作簿中的所有工作表,将它们放入一个单独的工作簿中并保存到磁盘。

import os
import pandas as pd

input_folder = "path/to/input/folder"
output_file = "path/to/output/file.xlsx"

all_data = pd.DataFrame()

for filename in os.listdir(input_folder):
    if filename.endswith(".xlsx") or filename.endswith(".xls"):
        # read excel workbook
        wb = pd.read_excel(os.path.join(input_folder, filename), sheet_name=None)
        # merge all sheets into one dataframe
        df = pd.concat([df for df in wb.values()])
        all_data = all_data.append(df, ignore_index=True)

# write merged data to output file
all_data.to_excel(output_file, index=False)

这个示例使用了同样的方法来读取所有Excel工作簿,并将所有工作表合并为一个大的数据帧。最后,我们将合并后的数据帧保存到一个新的Excel工作簿中。

以上就是Python批量处理工作簿和工作表的实现示例教程。希望这些示例能够帮助你更好地掌握如何使用Python处理Excel文件。