Python 把多个文件写在一个Excel不同Sheet里

在数据处理和分析工作中,我们经常需要将多个文件的数据汇总到一个Excel文件中,并且希望每个文件的数据存储在一个单独的Sheet中。Python提供了多种库来实现这一需求,其中pandasopenpyxl是两个常用的库。本文将介绍如何使用这两个库将多个文件写入一个Excel文件的不同Sheet中。

环境准备

在开始之前,请确保你的环境中已经安装了pandasopenpyxl库。如果尚未安装,可以通过以下命令进行安装:

pip install pandas openpyxl
  • 1.

使用pandas写入Excel

pandas是一个强大的数据处理库,它提供了将数据写入Excel文件的便捷方法。以下是一个使用pandas将多个CSV文件写入一个Excel文件的示例:

import pandas as pd

# 定义一个函数,用于将CSV文件读取为DataFrame
def read_csv_to_df(file_path):
    return pd.read_csv(file_path)

# 定义一个函数,用于将DataFrame写入Excel的指定Sheet
def write_df_to_excel(df, excel_path, sheet_name):
    with pd.ExcelWriter(excel_path, engine='openpyxl') as writer:
        df.to_excel(writer, sheet_name=sheet_name, index=False)

# 读取多个CSV文件并写入Excel
file_paths = ['file1.csv', 'file2.csv', 'file3.csv']
sheet_names = ['Sheet1', 'Sheet2', 'Sheet3']

for file_path, sheet_name in zip(file_paths, sheet_names):
    df = read_csv_to_df(file_path)
    write_df_to_excel(df, 'output.xlsx', sheet_name)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

使用openpyxl写入Excel

openpyxl是一个专门用于操作Excel文件的库。如果你需要更细致地控制Excel文件的写入过程,可以使用openpyxl。以下是一个使用openpyxl将多个CSV文件写入一个Excel文件的示例:

from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
import csv

# 定义一个函数,用于将CSV文件读取为列表
def read_csv_to_list(file_path):
    with open(file_path, 'r') as file:
        reader = csv.reader(file)
        return list(reader)

# 定义一个函数,用于将列表写入Excel的指定Sheet
def write_list_to_excel(data, excel_path, sheet_name):
    wb = Workbook()
    ws = wb.active
    ws.title = sheet_name

    for row in data:
        ws.append(row)

    wb.save(excel_path)

# 读取多个CSV文件并写入Excel
file_paths = ['file1.csv', 'file2.csv', 'file3.csv']
sheet_names = ['Sheet1', 'Sheet2', 'Sheet3']

wb = Workbook()
for file_path, sheet_name in zip(file_paths, sheet_names):
    data = read_csv_to_list(file_path)
    ws = wb.create_sheet(sheet_name)
    for row in dataframe_to_rows(pd.DataFrame(data[1:]), index=False, header=False):
        ws.append(row)

wb.save('output.xlsx')
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.

总结

本文介绍了如何使用Python的pandasopenpyxl库将多个文件写入一个Excel文件的不同Sheet中。pandas提供了简洁的API来实现这一需求,而openpyxl则提供了更多的控制能力。在实际应用中,你可以根据具体需求选择合适的库。

无论是使用pandas还是openpyxl,将多个文件汇总到一个Excel文件中都是数据处理和分析中常见的任务。掌握这些技能,可以帮助你更高效地处理和分析数据。

希望本文对你有所帮助。如果你有任何问题或建议,请随时在评论区留言。