码迷,mamicode.com
首页 > 其他好文 > 详细

openpyl 设置单元格格式

时间:2021-05-23 22:55:32      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:col   pat   dimens   width   order   列表   tom   outline   styles   

1、设置超链接

# 设置超链接
sheet.cell(2,2).hyperlink = "www.baidu.com"

2.cell的其它属性

# cell 的其它属性
sheet.cell(row = 1,column = 2).column_letter
sheet.cell(row = 1,column = 2).coordinate
sheet.cell(row = 1,column = 2).col_idx
sheet.cell(row = 1,column = 2).encoding
sheet.cell(row = 1,column = 2).offset
sheet.cell(row = 1,column = 2).is_date
sheet.cell(row = 1,column = 2).data_type
sheet.cell(row = 1,column = 2).has_style
sheet.cell(row = 1,column = 2).style
sheet.cell(row = 1,column = 2).style_id
sheet.cell(row = 1,column = 2).font
sheet.cell(row = 1,column = 2).alignment
sheet.cell(row = 1,column = 2).border
sheet.cell(row = 1,column = 2).fill
sheet.cell(row = 1,column = 2).number_format
sheet.cell(row = 1,column = 2).hyperlink

3、设置单元格的宽度和高度

# 调整列宽
sheet.column_dimensions[A].width = 20
# 调整行高
sheet.row_dimensions[1].height = 49


# 自适应的单元格。 def adjust_column_dimension(sheet, min_row, min_col, max_col): column_widths = [] for i, col in enumerate(sheet.iter_cols(min_col=min_col, max_col=max_col, min_row=min_row)): for cell in col: value = cell.value if value is not None: if isinstance(value, str) is False: value = str(value) try: column_widths[i] = max(column_widths[i], len(value)) except IndexError: column_widths.append(len(value)) for i, width in enumerate(column_widths): col_name = get_column_letter(min_col + i) value = column_widths[i] + 2 sheet.column_dimensions[col_name].width = value adjust_column_dimension(sheet, 1,1, sheet.max_column)

4、合并单元格

# 合并单元格
sheet.merge_cells("A1:B1")
sheet.merge_cells(start_column = 3, end_column = 5, start_row = 3, end_row = 5)
print(sheet.merged_cells) 
print(sheet.merges_cell_ranges) # 合并单元格所组成的列表

5、设置字体样式

# Font 字体设置
from openpyxl import load_workbook
from openpyxl.styles import PatternFill, Font, Alignment, Border, Side

wb = load_workbook("工资表.xlsx")
ws = wb[Sheet1]
font = Font(name=微软雅黑, # 字体名称
           size = 11, # 字体大小
           color = "FF000000", # 字体颜色
           bold = True, # 加粗
           italic = True, # 斜体
           vertAlign = baseline, # 垂直对齐方式
           underline = double, # 下划线
           strike = False)  # 删除线
ws[A2].font = font
wb.save("new_test.xlsx")
wb.close()

6、Border和Side 边框设置

# 设置Border 和 Side
from openpyxl import load_workbook
from openpyxl.styles import PatternFill, Font, Alignment, Border, Side

wb = load_workbook(工资表.xlsx)
ws = wb[Sheet1]
side_type = Side(border_style = mediumDashDot,color = FF000000)
# border_style 的取值范围:‘dashDot’,‘dashDotDot‘,‘dashed‘,‘dotted‘,‘double‘,‘hair‘,‘medium‘,‘mediumDashDot‘,‘mediumDashDotDot‘,‘mediumDashed‘,‘slantDashDot‘,‘thick‘,‘thin‘
border = Border(left = side_type,
               right = side_type,
               top = side_type,
               bottom = side_type,
               diagonal_direction = 30,
               outline = side_type,
               vertical = side_type,
               horizontal = side_type)
ws[A3].border = border
wb.save("new_test.xlsx")
wb.close()

7、PatternFill 填充单元格设置

# PatternFill 单元格填充样式设置
from openpyxl import*
from openpyxl.styles import PatternFill, Font, Alignment, Border, Side
wb = load_workbook("工资表.xlsx")
ws = wb[Sheet1]
fill = PatternFill(fill_type = darkDown,start_color=A6DA70D6,end_color=000000)
ws[A4].fill = fill
wb.save("new_test.xlsx")
wb.close()
""" 
start_color 前景色,十六进制aRGB,a表示透明度,纯色填充,可以使用fill_type = solid,使用前景色。
十六进制 颜色说明 https://www.sioe.cn/yingyong/yanse-rgb-16/
透明度设置
100%:FF
95%:F2
90%: E6
85%: D9
80%: CC
75%: BF
70%: B3
65%: A6
60%: 99
55%: 8C
50%: 80
45%: 73
40%: 66
35%: 59
30%: 4D
25%: 40
20%: 33
15%: 26
10%: 1A
5%: 0D
0%: 00

fill_type 填充类型 当fill_type为None时,以下参数不生效。
FILL_NONE = ‘None‘
FILL_SOLID = ‘solid‘
FILL_PATTERN_DARKDOWN = ‘darkdown‘
FILL_PATTERN_DARKGRAY = ‘darkGray‘
FILL_PATTERN_DARKGRID = ‘darkGrid‘
FILL_PATTERN_DARKHORIZONTAL = ‘darkHorizontal‘
FILL_PATTERN_DARKTRELLIS = ‘darkTrellis‘
FILL_PATTERN_DARKUP = ‘darkUp‘
FILL_PATTERN_DARKVERTICAL = ‘darkVertical‘
FILL_PATTERN_GRAY0625 = ‘gray0625‘
FILL_PATTERN_GRAY125 = ‘gray125‘
FILL_PATTERN_LIGHTDOWN = ‘lightDown‘
FILL_PATTERN_LIGHTGRAY = ‘lightGray‘
FILL_PATTERN_LIGHTGRID = ‘lightGrid‘
FILL_PATTERN_LIGHTHORIZONTAL = ‘lightHorizontal‘
FILL_PATTERN_LIGHTTRELLIS = ‘lightTrellis‘
FILL_PATTERN_LIGHTUP = ‘lightUp‘
FILL_PATTERN_LIGHTVERTICAL = ‘lightVertical‘
FILL_PATTERN_MEDIUMGRAY = ‘mediumGray‘
"""

8、Alignment 对齐设置

# Alignment 对齐设置
from openpyxl import*
from openpyxl.styles import PatternFill, Font, Alignment, Border, Side
wb = load_workbook("工资表.xlsx")
ws = wb[Sheet1]
align = Alignment(horizontal=center, # 水平对齐,left,center,right
                  vertical=center, # 垂直对齐,center,top,bottom
                  text_rotation=0, # 文本旋转度
                  wrap_text=True, # 自动换行
                  shrink_to_fit=True, 
                  indent=0 # 缩进
                 )

ws[A6].alignment = align
wb.save("new_test.xlsx")
wb.close()

9、数字格式设置

# 数字格式设置
"""单元格的数字格式也是常见的,大家可以在openpyxl中的numbers.py文件中找到数字的格式,这里贴一些:"""
BUILTIN_FORMATS = {
    0: General,
    1: 0,
    2: 0.00,
    3: #,##0,
    4: #,##0.00,
    5: "$"#,##0_);("$"#,##0),
    6: "$"#,##0_);[Red]("$"#,##0),
    7: "$"#,##0.00_);("$"#,##0.00),
    8: "$"#,##0.00_);[Red]("$"#,##0.00),
    9: 0%,
    10: 0.00%
}

from openpyxl import*
from openpyxl.styles import PatternFill, Font, Alignment, Border, Side

wb = load_workbook("工资表.xlsx")
ws = wb[Sheet1]
ws[A9].number_format = d-mmm-yy
wb.save("new_test.xlsx")
wb.close()

10、复制单元格属性

from openpyxl.styles import Font
fsheet1 = Font(name=Arial, size=10)
# 复制时指定字体为“微软雅黑”,其他属性来自fsheet1
fsheet2 = fsheet1.copy(name="微软雅黑")

 

openpyl 设置单元格格式

标签:col   pat   dimens   width   order   列表   tom   outline   styles   

原文地址:https://www.cnblogs.com/Teyisang/p/14727400.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!