Pandas实现自定义Excel格式并导出多个sheet表

  • Post category:Python

下面是“Pandas实现自定义Excel格式并导出多个sheet表”的完整实例教程。

1. 安装Pandas库

首先需要安装Pandas库,可以使用pip命令进行安装:

pip install pandas

2. 导入Pandas库和其他必要的库

在Python代码中导入Pandas库和其他必要的库,例如datetime和openpyxl。示例代码如下:

import pandas as pd
from datetime import datetime
from openpyxl import Workbook

3. 创建DataFrame

创建一个包含数据的DataFrame。示例中我们使用一个包含学生姓名、年龄和分数的DataFrame。

df = pd.DataFrame({
    '姓名': ['张三', '李四', '王五'],
    '年龄': [20, 21, 19],
    '分数': [90, 80, 85]
})

4. 定义Excel格式

使用openpyxl库中的样式功能定义Excel格式。示例代码中定义了表头样式和数据样式两个样式。

# 定义表头样式
th_style = openpyxl.styles.NamedStyle(name='th_style')
th_style.font = openpyxl.styles.Font(bold=True)
th_style.alignment = openpyxl.styles.Alignment(horizontal='center', vertical='center')
th_style.fill = openpyxl.styles.PatternFill('solid', fgColor='C0C0C0')

# 定义数据样式
data_style = openpyxl.styles.NamedStyle(name='data_style')
data_style.alignment = openpyxl.styles.Alignment(horizontal='right', vertical='center')

5. 创建Excel文件和sheet表

使用openpyxl库创建Excel文件和sheet表。示例代码中创建了一个包含两个sheet表的Excel文件。

# 创建Excel文件
wb = Workbook()

# 创建sheet1
ws1 = wb.active
ws1.title = 'Sheet1'

# 创建sheet2
ws2 = wb.create_sheet('Sheet2')

6. 将DataFrame数据写入Excel文件

使用Pandas库将DataFrame数据写入Excel文件。示例代码中将DataFrame数据写入了Excel文件的两个sheet表中。

# 将DataFrame数据写入sheet1
for r in dataframe_to_rows(df, header=True, index=False):
    ws1.append(r)

# 将表头样式应用到sheet1的第一行
for c in ws1['1:1']:
    c.style = 'th_style'

# 将数据样式应用到sheet1的数据区域
for row in ws1['2:' + str(ws1.max_row)]:
    for c in row:
        c.style = 'data_style'

# 将DataFrame数据写入sheet2,并应用相应的样式
# 省略代码,请参考示例代码

7. 保存Excel文件

最后使用save方法将Excel文件保存到本地。示例代码中将Excel文件保存到当前目录下的“example.xlsx”文件。

wb.save('example.xlsx')

通过以上步骤,我们就可以实现自定义Excel格式并导出多个sheet表。

另外,下面是一个使用Pandas实现导出Excel文件的示例代码:

import pandas as pd
import numpy as np

# 创建DataFrame
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar',
                         'foo', 'bar', 'foo', 'foo'],
                   'B': ['one', 'one', 'two', 'three',
                         'two', 'two', 'one', 'three'],
                   'C': np.random.randn(8),
                   'D': np.random.randn(8)})

# 创建ExcelWriter对象
writer = pd.ExcelWriter('pandas.xlsx', engine='xlsxwriter')

# 将DataFrame写入Excel文件
df.to_excel(writer, sheet_name='Sheet1')

# 创建多个sheet表,并将DataFrame写入不同的sheet表
df1 = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar'],
                    'B': ['one', 'one', 'two', 'three'],
                    'C': np.random.randn(4),
                    'D': np.random.randn(4)})
df2 = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar'],
                    'B': ['one', 'one', 'two', 'three'],
                    'C': np.random.randn(4),
                    'D': np.random.randn(4)})
df1.to_excel(writer, sheet_name='Sheet2')
df2.to_excel(writer, sheet_name='Sheet3')

# 保存Excel文件
writer.save()

以上示例代码创建了一个包含多个sheet表的Excel文件。可以发现,使用Pandas库写入Excel文件非常方便。