使用Python读写多个sheet文件

  • Post category:Python

下面我来给你详细讲解如何使用Python读写多个sheet文件。

准备工作

首先,我们需要安装pandas模块,用于处理excel文件。

你可以使用以下命令进行安装:

pip install pandas

读取多个sheet

我们可以使用pandas的read_excel方法来读取Excel文件。这个方法默认只读取Excel文件的第一个sheet,如果我们需要读取多个sheet,则需要使用sheet_name参数,传入一个列表,指定需要读取的sheet名称或sheet的索引。

以下是一个读取多个sheet的示例代码:

import pandas as pd

# 读取多个sheet
data = pd.read_excel('example.xlsx', sheet_name=['Sheet1', 'Sheet2'])

# 输出Sheet1和Sheet2的数据
print(data['Sheet1'])
print(data['Sheet2'])

在上面的代码中,我们使用了read_excel方法读取了名为example.xlsx的Excel文件,并将其中的Sheet1和Sheet2读取出来存储在data变量中,sheet_name参数传入了一个列表['Sheet1', 'Sheet2'],表示我们需要读取这两个sheet。

注意,read_excel方法的返回值为一个字典,字典的键为sheet名称或索引,值为该sheet的数据。

写入多个sheet

我们可以使用pandas的ExcelWriter类来写入Excel文件。该类的path参数指定要写入的Excel文件路径,可以使用mode参数设置写入模式,如果modeaappend,则将数据写入到原有Excel文件末尾,否则会覆盖原有Excel文件。engine参数指定用于写入文件的excel引擎,默认值为openpyxl,你也可以选择其他支持的引擎,例如xlsxwriter

以下是一个写入多个sheet的示例代码:

import pandas as pd

# 定义Sheet1和Sheet2的数据
data1 = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
data2 = pd.DataFrame({'a': [7, 8, 9], 'b': [10, 11, 12]})

# 写入多个sheet
with pd.ExcelWriter('example.xlsx', engine='openpyxl', mode='a') as writer:
    data1.to_excel(writer, sheet_name='Sheet1', index=False)
    data2.to_excel(writer, sheet_name='Sheet2', index=False)

在上面的代码中,我们首先定义了两个DataFrame对象保存了Sheet1和Sheet2的数据,然后使用ExcelWriter打开example.xlsx文件,将mode参数设置为a,表示在该文件的末尾追加数据。接着调用两次to_excel方法写入数据,sheet_name参数分别指定为Sheet1Sheet2

注意,如果写入模式为aappend,则需要使用ExcelWriterappend方法来打开已存在的Excel文件,并使用to_excel方法写入数据。

以上是使用Python读写多个sheet文件的示例教程,如果还有任何疑问,请随时问我。