Python获取合并Excel内容的步骤

1. 理解需求

在开始编写代码之前,我们首先需要明确需求。根据问题描述,我们需要从多个Excel文件中获取合并后的内容。进一步细化需求,我们需要获取Excel文件的指定工作表中的数据,并将这些数据合并到一个新的Excel文件中。

2. 确定解决方案

为了实现这个需求,我们可以采用以下步骤:

  1. 遍历指定文件夹下的所有Excel文件;
  2. 打开每个Excel文件,并读取指定的工作表中的数据;
  3. 将每个Excel文件的数据合并到一个新的Excel文件中。

下面是整个流程的流程图:

flowchart TD
    1[start] --> 2{遍历Excel文件}
    2 --> 3[打开每个Excel文件]
    3 --> 4[读取工作表数据]
    4 --> 5[合并数据]
    5 --> 6[保存合并后的结果]
    6 --> 7[end]

3. 代码实现

步骤1:遍历Excel文件

首先,我们需要遍历指定文件夹下的所有Excel文件。可以使用Python的os模块来实现文件夹遍历。以下是实现代码:

import os

def get_excel_files(folder_path):
    excel_files = []
    for file in os.listdir(folder_path):
        if file.endswith(".xlsx") or file.endswith(".xls"):
            excel_files.append(os.path.join(folder_path, file))
    return excel_files

代码解释:

  • os.listdir(folder_path):获取文件夹下的所有文件和文件夹的名称;
  • file.endswith(".xlsx") or file.endswith(".xls"):判断文件是否以".xlsx"或".xls"结尾;
  • os.path.join(folder_path, file):获取文件的绝对路径。

步骤2:打开每个Excel文件并读取工作表数据

接下来,我们需要打开每个Excel文件,并读取指定的工作表中的数据。可以使用Python的openpyxl库来操作Excel文件。以下是实现代码:

from openpyxl import load_workbook

def read_excel_data(file_path, sheet_name):
    workbook = load_workbook(file_path)
    sheet = workbook[sheet_name]
    
    data = []
    for row in sheet.iter_rows(values_only=True):
        data.append(row)
    
    return data

代码解释:

  • load_workbook(file_path):打开Excel文件并创建一个Workbook对象;
  • workbook[sheet_name]:获取指定名称的工作表;
  • sheet.iter_rows(values_only=True):遍历工作表的每一行,并以元组形式返回每一行的数据。

步骤3:合并数据

现在,我们已经可以获取每个Excel文件中指定工作表的数据了。接下来,我们需要将这些数据合并到一个新的Excel文件中。可以使用Python的openpyxl库创建一个新的Excel文件,并将数据写入其中。以下是实现代码:

from openpyxl import Workbook

def merge_data(data_list):
    merged_data = []
    for data in data_list:
        merged_data.extend(data)
    
    return merged_data

def write_merged_data(data, output_file):
    workbook = Workbook()
    sheet = workbook.active
    
    for row in data:
        sheet.append(row)
    
    workbook.save(output_file)

代码解释:

  • Workbook():创建一个新的Excel文件对象;
  • workbook.active:获取第一个工作表;
  • sheet.append(row):将每一行数据写入工作表。

步骤4:保存合并后的结果

最后,我们需要将合并后的结果保存到一个Excel文件中。可以使用workbook.save(output_file)来保存文件。

完整代码

下面是整个流程的完整代码:

import os
from openpyxl import load_workbook, Workbook

def get_excel_files(folder_path):
    excel_files = []
    for file in os.listdir(folder_path):
        if file.endswith(".xlsx") or file.endswith(".xls"):
            excel_files.append(os.path.join(folder_path, file))
    return excel_files

def read_excel_data(file_path, sheet_name):
    workbook = load_workbook(file_path)
    sheet = workbook[sheet_name]
    
    data = []
    for row in sheet.iter_rows(values_only=True):
        data.append(row)
    
    return data