python之如何使用openpyxl设置单元格样式

 更新时间:2023年06月21日 10:50:04   作者:阿涛的一天  
这篇文章主要介绍了python之如何使用openpyxl设置单元格样式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

引言

在pandas保存多个excel表格的时候,有时单元格中的内容很多,预览的时候不方便查看,这时候我们需要修改单元格的宽高及换行显示

下面直接来看代码

import pandas as pd
import datetime
df = pd.read_excel('测试.xlsx')
grouped = df.groupby(['部门'])
current_time = datetime.datetime.now()
current_time = current_time.strftime('%m%d')
print(current_time)
name_list = []
for dtype,group in grouped:
    if "/" in dtype:
        dtype = dtype.replace("/","-")
    group.to_excel(f"./demand/{dtype}{current_time}.xlsx",index = False)
    name_list.append(f"./demand/{dtype}{current_time}.xlsx")

这段代码先将测试表格拆分为多个表格,并且拿到各部门的表格name。

def format_xlsx(file_path):
    import os
    from openpyxl import load_workbook
    from openpyxl.utils import get_column_letter
    from openpyxl.styles import PatternFill, Alignment, Side, Border
    from openpyxl.styles import Font, Color, colors, Border, Side, Alignment
    wb = load_workbook(file_path)
    # 打开工作表
    ws = wb.active
    #设置单元格边框的线条样式
    border_set = Border(left=Side(style='thin', color=colors.BLACK),  # 左边框
                    right=Side(style='thin', color=colors.BLACK),  # 右边框
                    top=Side(style='thin', color=colors.BLACK),  # 上边框
                    bottom=Side(style='thin', color=colors.BLACK))  # 下边框
    #设置单元格内容对齐方式
    for i in ws:
        for j in i:
#             print(j,type(j))
            j.alignment = Alignment(horizontal='center', vertical='center',wrapText = True)
    		j.border = border_set
    #设置单元格宽高
    width = 50
    height = 80
#     height = width * (2.2862 / 0.3612)
    for i in range(2, ws.max_row+1):
        ws.row_dimensions[i].height = height
    for i in range(1, ws.max_column+1):
        ws.column_dimensions[get_column_letter(i)].width = width
    wb.save(file_path)

然后定义一个format函数,来对sheet页进行格式化。

ws为worksheet,即单个sheet页,嵌套遍历时,i为列遍历的整列[“A”]、[“B”]、[“C”]…然后再行遍历,得到的就是[“A1”][“B1”][“C1”]…等所有的单元格cell。

这里设置了三个参数,水平居中”horizontal“,垂直居中”vertical”,还有一个换行显示“wrapText”。

然后是设置单元格的宽高

分别循环去获取有数据的单元格的最大长度,注意:这里的openpyxl库循环遍历时首个元素的下标为1而不是0,而行我们是从第二行开始设置的,原因是表头一般都会单独设置醒目样式以区分表体。

下面是操作截图

初始表

生成表

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 关于python pycharm中输出的内容不全的解决办法

    关于python pycharm中输出的内容不全的解决办法

    这篇文章主要介绍了关于python pycharm中输出的内容不全的解决办法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • pycharm中:OSError:[WinError 1455]页面文件太小无法完成操作问题的多种解决方法

    pycharm中:OSError:[WinError 1455]页面文件太小无法完成操作问题的多种解决方法

    这篇文章主要给大家介绍了关于pycharm中:OSError:[WinError 1455]页面文件太小无法完成操作问题的多种彻底解决方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-02-02
  • Python文档生成工具pydoc使用介绍

    Python文档生成工具pydoc使用介绍

    这篇文章主要介绍了Python文档生成工具pydoc使用介绍,本文讲解了基本用法、获取帮助的方法、生成的文档效果图等内容,需要的朋友可以参考下
    2015-06-06
  • Python操作JSON文件的知识点整理

    Python操作JSON文件的知识点整理

    Python 提供了内置的 json 模块来处理 JSON 格式的文件。该模块主要分为读取和写入 JSON 文件。本文主要为大家整理了一些Python操作JSON文件的知识点,需要的可以参考一下
    2023-01-01
  • Python 一键制作微信好友图片墙的方法

    Python 一键制作微信好友图片墙的方法

    这篇文章主要介绍了Python 一键制作微信好友图片墙的方法,有两种方法,每种方法给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • python实现矩阵的示例代码

    python实现矩阵的示例代码

    本文主要介绍了python实现矩阵的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Python中将嵌套列表扁平化的多种实现方法

    Python中将嵌套列表扁平化的多种实现方法

    在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋友可以参考下
    2025-07-07
  • python 寻找优化使成本函数最小的最优解的方法

    python 寻找优化使成本函数最小的最优解的方法

    这篇文章主要介绍了python 寻找优化使成本函数最小的最优解的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Pandas聚合运算和分组运算的实现示例

    Pandas聚合运算和分组运算的实现示例

    这篇文章主要介绍了Pandas聚合运算和分组运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • 如何提高python 中for循环的效率

    如何提高python 中for循环的效率

    这篇文章主要介绍了如何提高python 中for循环的效率,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04

最新评论