pandas DataFrame 导出到Excel格式美化

本文介绍了如何使用pandas的to_excel()方法配合xlsxwriter库,通过自动调整列宽和创建Excel表格(超级表)来美化DataFrame的Excel导出格式,实现了一个通用化的代码示例。
摘要由CSDN通过智能技术生成

默认情况下,DataFrame 的 to_excel() 方法导出到 Excel 格式是比较丑的,本篇的代码演示了用一种比较简单的方法进行美化。要点:

  1. to_excel() 方法的引擎使用 xlsxwriter
  2. 使用 Excel 的 Table (经常被称为超级表)
  3. 自动列宽

美化前,输出的格式如下:

美化后格式如下:


代码实现了通用化:


import pandas as pd
import os

def format_excel(writer, sheet_name, df):
    '''
    将DataFrame写入Excel, 格式美化
    writer:     XlsxWriter
    sheet_name: 要写入的工作表名
    df:         DataFrame
    '''
    column_settings = [{'header': column} for column in df.columns]
    (max_row, max_col) = df.shape

    worksheet = writer.sheets[sheet_name]
    worksheet.add_table(0, 0, max_row, max_col - 1, {'columns': column_settings,'banded_rows': False })
    worksheet.autofit()

    writer.close()


path = os.path.dirname(os.path.abspath(__file__))
fname = os.path.join(path, 'source.xlsx')

df = pd.read_excel(fname, sheet_name=0)

writer = pd.ExcelWriter(os.path.join(path, 'output.xlsx'), engine='xlsxwriter')
df.to_excel(writer, 'Sheet1', index=False)
format_excel(writer, "Sheet1", df)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值