df保存为excel

df保为excel

pandas的dataframe保存为excel,设置列宽,行高和自动换行。

python 复制代码
from openpyxl.styles import Alignment, Font
from openpyxl.utils.dataframe import dataframe_to_rows
from openpyxl.workbook import Workbook


def save_excel(df, filename, col_width=50, row_height=40):
    wb = Workbook()
    ws = wb.active
    # 设置表头字体为加粗
    bold_font = Font(bold=True)
    # 将DataFrame写入Excel工作表
    for r_idx, row in enumerate(dataframe_to_rows(df, index=False, header=True)):
        for c_idx, value in enumerate(row, 1):
            cell = ws.cell(row=r_idx + 1, column=c_idx, value=value)
            # 设置表头加粗
            if r_idx == 0:
                cell.font = bold_font
            # 设置单元格的换行功能
            cell.alignment = Alignment(wrap_text=True)
    # 调整列宽
    for col in ws.columns:
        column = col[0].column_letter
        ws.column_dimensions[column].width = col_width
    # 调整行高
    for row in ws.iter_rows():
        for cell in row:
            if cell.row > 1:  # 不调整第一行(表头)
                ws.row_dimensions[cell.row].height = row_height
    # 保存Excel文件
    wb.save(filename)
相关推荐
无心水20 分钟前
Java时间处理封神篇:java.time全解析
java·开发语言·python·架构·localdate·java.time·java时间处理
吴秋霖43 分钟前
【某音电商】protobuf聊天协议逆向
python·算法·protobuf
深藏功yu名44 分钟前
Day24:向量数据库 Chroma_FAISS 入门
数据库·人工智能·python·ai·agent·faiss·chroma
cm6543201 小时前
用Python破解简单的替换密码
jvm·数据库·python
wan9yu2 小时前
为什么你需要给 LLM 的数据"加密"而不是"脱敏"?我写了一个开源工具
python
摇滚侠2 小时前
你是一名 java 程序员,总结定义数组的方式
java·开发语言·python
这个名有人用不2 小时前
解决 uv 虚拟环境使用 pip 命令提示command not found的办法
python·pip·uv·claude code
Oueii2 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
2501_908329853 小时前
使用Python自动收发邮件
jvm·数据库·python