python设置excel表样式

应用场景:将数个excel表的格式调整成统一的

思路:

一、打开工作表

import os

# 设置文件夹路径
path='./test/'
# 返回当前目录下所有文件名
files = os.listdir(path)
# 循环文件名列表
for file in files:
    # 拼接文件路径
    file_path = path + file

    # 打开工作簿
    wb = load_workbook(file_path)
    # 打开工作表
    ws = wb.active

 二、调整列宽

需要用到Sheet.column_dimensions['列位置'].width

    #调整列宽
    ws.column_dimensions['A'].width=20
    ws.column_dimensions['B'].width=30

三、定义单元格样式

选择样式属性定义该属性的样式值 , 赋值修改(具体各个)单元格的样式值

对于所有单元格样式的修改可以分为两个功能块:“定义单元格样式” 和 “循环修改单元格”

1.边框样式Cell.border属性表示

2.颜色填充Cell.fill属性表示

3.对齐方式Cell.alignment属性表示。

 

    #定义单元格样式

    #定义表头颜色为橙色
    header_fill=PatternFill('solid',fgColor='FF7F24')
        #定义表中颜色为浅黄色
    content_fill=PatternFill('solid',fgColor='FFFFE0')
        #定义表尾颜色为淡橘红色
    bottom_fill=PatternFill('solid',fgColor='EE9572')

    #定义对其方式,纵向居中,横向居中
    align=Alignment(horizontal='center',vertical='center')

    #定义边样式为细条
    side=Side('thin')
    #定义表头边框样式有底边、右边
    head_border=Border(bottom=side,right=side)
    #定义表中边框样式有左边
    content_border=Border(left=side)

四、循环修改表格样式

1、修改“表头”的单元格样式

表头是第一行的单元格,取出这一行用ws[1]。然后就可以用for cell in ws[1]取出每个单元格,再来对单元格的样式属性进行修改。

    #取出第一行单元格
    for cell in ws[1]:
        #设置单元格填充颜色
        cell.fill=header_fill
        #设置单元格对其方式
        cell.alignment=align
        #设置单元格边框
        cell.border=head_border

2、修改“表中”的单元格样式

取出工作表中一定范围的数据,使用iter_rows(min_row,max_row),此时values_only默认为False,要进行样式修改的,不能只取数值,从第2行到倒数第2行

    #取出表中的各行,第二行到倒数第二行
    for row in ws.iter_rows(min_row=2,max_row=ws.max_row-1):
        for cell in row:
            cell.fill=content_fill
            cell.alignment=align
            cell.border=content_border

3、修改“表尾”的单元格样式

    #取出表尾
    for cell in ws[ws.max_row]:
        cell.fill=bottom_fill   
        cell.alignment=align
        cell.border=content_border

五、保存工作簿

   wb.save(file_path)

结果如下:

 

完成代码如下:

# 导入模块
import os
from openpyxl import load_workbook
from openpyxl.styles import PatternFill,Alignment,Side,Border


# 设置文件夹路径
path='./test/'
# 返回当前目录下所有文件名
files = os.listdir(path)
# 循环文件名列表
for file in files:
    # 拼接文件路径
    file_path = path + file

    # 打开工作簿
    wb = load_workbook(file_path)
    # 打开工作表
    ws = wb.active

    #调整列宽
    ws.column_dimensions['A'].width=20
    ws.column_dimensions['B'].width=30

    #定义单元格样式

    #定义表头颜色为橙色
    header_fill=PatternFill('solid',fgColor='FF7F24')
        #定义表中颜色为浅黄色
    content_fill=PatternFill('solid',fgColor='FFFFE0')
        #定义表尾颜色为淡橘红色
    bottom_fill=PatternFill('solid',fgColor='EE9572')

    #定义对其方式,纵向居中,横向居中
    align=Alignment(horizontal='center',vertical='center')

    #定义边样式为细条
    side=Side('thin')
    #定义表头边框样式有底边、右边
    head_border=Border(bottom=side,right=side)
    #定义表中边框样式有左边
    content_border=Border(left=side)
        
    #取出第一行单元格
    for cell in ws[1]:
        #设置单元格填充颜色
        cell.fill=header_fill
        #设置单元格对其方式
        cell.alignment=align
        #设置单元格边框
        cell.border=head_border

    #取出表中的各行,第二行到倒数第二行
    for row in ws.iter_rows(min_row=2,max_row=ws.max_row-1):
        for cell in row:
            cell.fill=content_fill
            cell.alignment=align
            cell.border=content_border
        
    #取出表尾
    for cell in ws[ws.max_row]:
        cell.fill=bottom_fill   
        cell.alignment=align
        cell.border=content_border

    wb.save(file_path)

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
A:可以使用openpyxl模块来格式化excel表格样式。 首先导入openpyxl模块: ```python import openpyxl from openpyxl.styles import Font, Color, Alignment, PatternFill, Border, Side from openpyxl.utils import get_column_letter ``` 接着打开excel文件并选择对应的格: ```python workbook = openpyxl.load_workbook('example.xlsx') worksheet = workbook['Sheet1'] ``` 通过设置单元格的属性,可以改变字体、颜色、对齐方式和填充等样式。例如,要将第一行的字体设置为粗体,颜色设置为红色,对齐方式设置为居中: ```python for col in range(1, worksheet.max_column + 1): cell = worksheet.cell(row=1, column=col) cell.value = cell.value.title() cell.font = Font(bold=True, color='FF0000') cell.alignment = Alignment(horizontal='center', vertical='center') ``` 以上代码将第一行的单元格属性依次设置为粗体、红色、居中对齐。 要给单元格填充颜色,可以使用PatternFill类。例如,要将第一列的所有单元格背景设置为浅灰色: ```python greyFill = PatternFill(start_color='C0C0C0', end_color='C0C0C0', fill_type='solid') for row in range(2, worksheet.max_row + 1): cell = worksheet.cell(row=row, column=1) cell.fill = greyFill ``` 以上代码将第一列的所有单元格背景设置为浅灰色。 最后保存文件: ```python workbook.save('formatted_example.xlsx') ``` 完整代码: ```python import openpyxl from openpyxl.styles import Font, Color, Alignment, PatternFill, Border, Side from openpyxl.utils import get_column_letter workbook = openpyxl.load_workbook('example.xlsx') worksheet = workbook['Sheet1'] # 格式化第一行 for col in range(1, worksheet.max_column + 1): cell = worksheet.cell(row=1, column=col) cell.value = cell.value.title() cell.font = Font(bold=True, color='FF0000') cell.alignment = Alignment(horizontal='center', vertical='center') # 格式化第一列 greyFill = PatternFill(start_color='C0C0C0', end_color='C0C0C0', fill_type='solid') for row in range(2, worksheet.max_row + 1): cell = worksheet.cell(row=row, column=1) cell.fill = greyFill workbook.save('formatted_example.xlsx') ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

樊豆豆123

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值