openpyxl学习- 单元格边框的设置

本文介绍了如何使用Python库openpyxl在Excel中取消特定单元格的边框并设置边框样式,包括使用ColorScale进行颜色渐变和设置不同边框的宽度和样式。
摘要由CSDN通过智能技术生成

        在对excel进行操作的时候,会通过设置一些边框来划分图标,如何设置变宽呢!

1、取消特定单元格的边框

from openpyxl.formatting.rule import ColorScale, FormatObject
from openpyxl.styles import Color
from openpyxl import Workbook
from openpyxl.styles import Border, Side
import pandas as pd 
from openpyxl.formatting.rule import Rule
from openpyxl.utils.dataframe import dataframe_to_rows
first = FormatObject(type='min')
last = FormatObject(type='max')

colors = [Color('AA0000'), Color('00AA00')]
cs2 = ColorScale(cfvo=[first, last], color=colors)

mid = FormatObject(type='num', val=40)
colors.insert(1, Color('00AA00'))
cs3 = ColorScale(cfvo=[first, mid, last], color=colors)

rule = Rule(type='colorScale', colorScale=cs3)
sales = ['张三','李四','王五']
ages = [12,14,13]
df = pd.DataFrame(zip(sales,ages),columns=['sales','ages'])

# 创建一个新的工作簿
wb = Workbook()

ws = wb.active
rows = dataframe_to_rows(df, index=False, header=True)

for r_idx, row in enumerate(rows, start=1):
    for c_idx, value in enumerate(row, start=1):
        ws.cell(row=r_idx, column=c_idx, value=value)
# 假设需要操作的特定区域范围为A1:D5
specific_range = 'C3:H10'
# 取消特定区域的外边框
for row in Pipeline[specific_range]:
    for cell in row:
        cell.border = Border()

2、 设置边框

在openpyxl中,边框(borders)是用来设置单元格边框样式的重要属性之一。通过设置边框,您可以调整单元格的外观,使其在Excel表格中呈现不同的边框效果。

在openpyxl中,边框是通过Border类来表示和设置的。Border类包含了多个属性,用于定义边框的样式、颜色和边框线的粗细等。以下是Border类的一些常用属性:

  1. left:设置左边框的样式和颜色。
  2. right:设置右边框的样式和颜色。
  3. top:设置顶部边框的样式和颜色。
  4. bottom:设置底部边框的样式和颜色。
  5. diagonal:设置对角线的样式和颜色。
  6. diagonal_direction:设置对角线的方向。
  7. vertical:设置垂直边框的样式和颜色。
  8. horizontal:设置水平边框的样式和颜色。

除了以上列出的属性外,Border类还包含其他一些属性,用于更精细地控制边框的样式。您可以根据需要设置这些属性来实现不同的边框效果。

border_style属性用于设置边框线的样式,可以选择以下常用的边框样式:

  1. "thin":细线
  2. "medium":中等粗细线
  3. "thick":粗线
  4. "double":双线
  5. "hair":细线
  6. "dotted":点线
  7. "dashDot":点划线
  8. "dashDotDot":双点划线
  9. "dashed":虚线
  10. "dashDotDot":双点划线
  11. "mediumDashDot":中等点划线
  12. "mediumDashed":中等虚线
  13. "mediumDashDotDot":中等双点划线
  14. "slantDashDot":斜线点划线

border = Border(left=Side(style='thick', color='000000'),
                right=Side(style='thick', color='000000'),
                top=Side(style='thick', color='000000'),
                bottom=Side(style='thick', color='000000'))
bottom_border = Border(bottom=Side(style='thick', color='000000'))
top_border = Border(top=Side(style='thick', color='000000'))
right_border = Border(right=Side(style='thick', color='000000'))
left_border = Border(left=Side(style='thick', color='000000'))
specific_range = 'M3:M10'
for row in ws[specific_range]:
    for cell in row:
        cell.border = left_border
specific_range = 'B3:B10'
for row in ws[specific_range]:
    for cell in row:
        cell.border = right_border
specific_range = 'C3:L3'
for row in ws[specific_range]:
    for cell in row:
        cell.border = top_border
specific_range = 'C10:L10'
for row in ws[specific_range]:
    for cell in row:
        cell.border = bottom_border
wb.save('test.xlsx')

输出 

解释:

1、要的是第三列的左边的边框, 为什么设置B列的右边框呢!

答,当你设置的是右边框的时候你会发现少了两单元格的边框

如下图是按照运行得到的

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值