一个实用的批量处理excel文件的例子

要批量处理Excel文件并读取每个文件中的第二个表,可以使用Python的pandas库来进行操作。

import pandas as pd
import os
# 定义一个空的DataFrame,用于存储每个文件的第二个表
merged_df = pd.DataFrame()
# 遍历文件夹中的所有Excel文件
folder_path = 'excel文件夹路径'
for file_name in os.listdir(folder_path):
    if file_name.endswith('.xlsx') or file_name.endswith('.xls'):
        file_path = os.path.join(folder_path, file_name)
        # 读取Excel文件中的第二个表
        xls = pd.ExcelFile(file_path)
        sheet_names = xls.sheet_names
        if len(sheet_names) > 1:
            sheet_name = sheet_names[1]
            df = xls.parse(sheet_name)
            # 将当前表数据合并到总的DataFrame中
            merged_df = pd.concat([merged_df, df], ignore_index=True)
# 将合并后的DataFrame写出为Excel文件
output_file = '合并后的Excel文件路径'
merged_df.to_excel(output_file, index=False)
  1. 首先导入需要的库,包括pandasos
  2. 创建一个空的DataFrame merged_df,用于存储每个文件的第二个表数据。
  3. 使用os.listdir()函数遍历指定文件夹中的所有文件,筛选出仅为Excel文件。请将”excel文件夹路径”替换为实际的文件夹路径。
  4. 对于每个Excel文件,使用pd.ExcelFile()函数创建一个ExcelFile对象,并获取该文件中所有表的名称。
  5. 如果文件中有多个表,则通过xls.parse()函数按照表的名称读取第二个表的数据。注意:Excel文件中的表索引从0开始,因此第二个表的索引为1。
  6. 将当前表的数据使用pd.concat()函数合并到总的DataFrame merged_df中,ignore_index=True表示将所有数据的行索引重置为0开始。
  7. 遍历完所有的Excel文件后,将合并后的DataFrame merged_df写出为Excel文件。请将”合并后的Excel文件路径”替换为实际的输出路径。

已发布

分类

标签:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注