python设置Excel表格样式与单元格属性

资源链接:

视频+源码

链接:https://pan.quark.cn/s/512577d78790

实战一我们合并了4个季度的表格数据到【全年数据.xlsx】,但是我们打开发现表格是没有边框的,而且数据之间排版很拥挤,销售单号那一列都显示不全,所以今天我们来学习下给表格设置固定的样式,并对单元格的属性值进行修改。

我们先上代码看看:

python 复制代码
from openpyxl import Workbook, load_workbook
from openpyxl.styles import Font, PatternFill, Alignment, Border, fills, colors,Side
import os

# 导入表格数据
filePath = 'D:\\2021年销售分析\\全年数据.xlsx'
if os.path.exists(filePath):
    print("文件存在")
else:
    print("文件不存在")

# 操作单元格
wb = load_workbook(filePath)
print(wb)  # 确保 wb 被正确赋值
#<openpyxl.workbook.workbook.Workbook object at 0x0000024FFEB7A910> 是一个表示 openpyxl 的 Workbook 对象的内存地址的输出。这表明 wb 变量已经被成功赋值为一个 Workbook 对象,你的工作簿文件已成功加载。
ws = wb.active

# 调整列宽
ws.column_dimensions["A"].width = 25
ws.column_dimensions["B"].width = 10
ws.column_dimensions["C"].width = 10
ws.column_dimensions["D"].width = 13
ws.column_dimensions["E"].width = 35
ws.column_dimensions["F"].width = 8
ws.column_dimensions["G"].width = 10

# 设置单元格格式
# 设置字体格式
font = Font("微软雅黑", size=12, color=colors.BLACK, bold=False)

# 单元格颜色填充
fill = PatternFill(fill_type="solid", start_color="CDCDCD", end_color="CDCDCD")
#CDCDCD浅灰色

# 单元格对齐方式
alignment = Alignment(horizontal="center", vertical="center", indent=0)
#wrap_text=True文字换行.shrink_to_fit=True自适应宽度

# 单元格边框
bd = Border (left=Side(border_style="thin", color=colors.BLACK),
            right=Side(border_style="thin", color=colors.BLACK),
            top=Side(border_style="thin", color=colors.BLACK),
            bottom=Side(border_style="thin", color=colors.BLACK),
            outline=Side(border_style="thin", color=colors.BLACK),
            vertical=Side(border_style="thin", color=colors.BLACK),
            horizontal=Side(border_style="thin", color=colors.BLACK)
            )
'''Border:用来定义单元格的边框样式。
Side:用来定义单边的边框样式,包括边框的样式(如thin, medium, thick等)和颜色(如colors.BLACK)。
具体设置了以下边框:

left:左边框,样式为thin(细线),颜色为黑色。
right:右边框,样式为thin(细线),颜色为黑色。
top:上边框,样式为thin(细线),颜色为黑色。
bottom:下边框,样式为thin(细线),颜色为黑色。
outline:单元格的外框,样式为thin(细线),颜色为黑色。
vertical:垂直边框,样式为thin(细线),颜色为黑色。
horizontal:水平边框,样式为thin(细线),颜色为黑色。'''

# 遍历数据
for row in ws.rows:
    for cell in row:
        cell.font = font
        cell.fill = fill
        cell.alignment = alignment
        cell.border = bd

# 设置表头字体格式
ft = Font("宋体", size=12, color=colors.BLUE, bold=True) # italic=True斜体
ws["A1"].font = ft
ws["B1"].font = ft
ws["C1"].font = ft
ws["D1"].font = ft
ws["E1"].font = ft
ws["F1"].font = ft
ws["G1"].font = ft




savePath = r"D:\2021年销售分析\全年数据-格式调整.xlsx"
# 保存数据
wb.save(savePath)

美化结果:

总结:

我们总结下上面用到的知识点:
修改字体样式 :Font(name=字体名称,size=字体大小,bold=是否加粗,italic=是否斜体,color=字体颜色)
单元格颜色填充: PatternFill(fill_type=填充样式,start_color=开始颜色, end_color=结束颜色)
单元格对齐方式: Alignment(horizontal=水平对齐模式,vertical=垂直对齐模式,text_rotation=旋转角

度,wrap_text=是否自动换行)
水平对齐: 'distributed','justify','center','leftfill', 'centerContinuous','right,'general';
垂直对齐: 'bottom','distributed','justify','center','top';

#alignment = Alignment(horizontal="center", vertical="center", indent=0)

# 设置表头字体格式

ft = Font("宋体", size=12, color=colors.BLUE, bold=True) # italic=True斜体

ws["A1"].font = ft

ws["B1"].font = ft

ws["C1"].font = ft

ws["D1"].font = ft

ws["E1"].font = ft

ws["F1"].font = ft

ws["G1"].font = ft

savePath = r"D:\2021年销售分析\全年数据-格式调整.xlsx"
# 保存数据

wb.save(savePath)

设置边框样式:

Side(style=边线样式,color=边线颜色)

Border(left=左边线样式,right=右边线样式,top=上边线样式,bottom=下边线样式)
style参数的种类: 'double, 'mediumDashDotDot', 'slantDashDot','dashDotDot','dotted','hair',

'mediumDashed, 'dashed', 'dashDot', 'thin','mediumDashDot','medium',

相关推荐
迪尔~6 小时前
Apache POI中通过WorkBook写入图片后出现导出PDF文件时在不同页重复写入该图片问题,如何在通过sheet获取绘图对象清除该图片
java·pdf·excel
瓶子xf2 天前
使用Excel制作甘特图
excel·甘特图
战族狼魂2 天前
Excel 连接阿里云 RDS MySQL
mysql·阿里云·云计算·excel
cypking2 天前
vue excel转json功能 xlsx
vue.js·json·excel
专注VB编程开发20年2 天前
C#教程之NPOI读写excel文件XLS,XLSX格式
数据库·microsoft·c#·excel·xlsx·xls
YC运维2 天前
WEB虚拟主机3种部署方式全解析
excel
Dxy12393102165 天前
Python如何合并两个Excel文件
爬虫·python·excel
wtsolutions6 天前
Batch Conversion Online JSON Files (from URL) to Excel by WTSolutions
json·excel·batch
码尚云标签6 天前
导入Excel打印
excel·excel导入·标签打印软件·打印知识·excel导入打印教程
lilv667 天前
python中用xlrd、xlwt读取和写入Excel中的日期值
开发语言·python·excel