在对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
类的一些常用属性:
left
:设置左边框的样式和颜色。right
:设置右边框的样式和颜色。top
:设置顶部边框的样式和颜色。bottom
:设置底部边框的样式和颜色。diagonal
:设置对角线的样式和颜色。diagonal_direction
:设置对角线的方向。vertical
:设置垂直边框的样式和颜色。horizontal
:设置水平边框的样式和颜色。
除了以上列出的属性外,Border
类还包含其他一些属性,用于更精细地控制边框的样式。您可以根据需要设置这些属性来实现不同的边框效果。
border_style
属性用于设置边框线的样式,可以选择以下常用的边框样式:
"thin"
:细线"medium"
:中等粗细线"thick"
:粗线"double"
:双线"hair"
:细线"dotted"
:点线"dashDot"
:点划线"dashDotDot"
:双点划线"dashed"
:虚线"dashDotDot"
:双点划线"mediumDashDot"
:中等点划线"mediumDashed"
:中等虚线"mediumDashDotDot"
:中等双点划线"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列的右边框呢!
答,当你设置的是右边框的时候你会发现少了两单元格的边框
如下图是按照运行得到的