在对openpyxl有了简单了解之后,今天本文将通过实例详细讲解openpyxl的单元格样式。

openpyxl的单元格样式由6种属性决定,每一种都是一个类,需要注意的是这在对样式属性赋值时,样式实例一经创建,样式实例的属性就不可更改,只能新建样式实例。如下所示:font(字体类):字号、字体颜色、下划线等

fill(填充类):颜色等

border(边框类):设置单元格边框

alignment(位置类):对齐方式

number_format(格式类):数据格式

protection(保护类):写保护

单元格默认样式如下:

>>> from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font

>>> font = Font(name='Calibri',

...                 size=11,

...                 bold=False,

...                 italic=False,

...                 vertAlign=None,

...                 underline='none',

...                 strike=False,

...                 color='FF000000')

>>> fill = PatternFill(fill_type=None,

...                 start_color='FFFFFFFF',

...                 end_color='FF000000')

>>> border = Border(left=Side(border_style=None,

...                           color='FF000000'),

...                 right=Side(border_style=None,

...                            color='FF000000'),

...                 top=Side(border_style=None,

...                          color='FF000000'),

...                 bottom=Side(border_style=None,

...                             color='FF000000'),

...                 diagonal=Side(border_style=None,

...                               color='FF000000'),

...                 diagonal_direction=0,

...                 outline=Side(border_style=None,

...                              color='FF000000'),

...                 vertical=Side(border_style=None,

...                               color='FF000000'),

...                 horizontal=Side(border_style=None,

...                                color='FF000000')

...                )

>>> alignment=Alignment(horizontal='general',

...                     vertical='bottom',

...                     text_rotation=0,

...                     wrap_text=False,

...                     shrink_to_fit=False,

...                     indent=0)

>>> number_format = 'General'

>>> protection = Protection(locked=True,

...                         hidden=False)

以上几种样式(字体、填充、边框、位置和保护)实例一旦被创建实例的属性就不可更改,只能重新创建实例。

>>> from openpyxl.styles import colors

>>> from openpyxl.styles import Font, Color

>>> from openpyxl.styles import colors

>>> from openpyxl import Workbook

>>> wb = Workbook()

>>> ws = wb.active

>>>

>>> a1 = ws['A1']

>>> d4 = ws['D4']

>>> ft = Font(color=colors.RED)

>>> a1.font = ft

>>> d4.font = ft

>>>

>>> a1.font.italic = True # 不会生效,样式实例一旦创建,实例的属性就不可改变

>>>

>>> # 若要改变样式,必须新建样式实例

>>>

>>> a1.font = Font(color=colors.RED, italic=True) # 创建字体实例(红色、斜体,其他属性默认)

复制样式

样式可以被复制:

>>> from openpyxl.styles import Font

>>>

>>> ft1 = Font(name='Arial', size=14)

>>> ft2 = ft1.copy(name="Tahoma") # 复制时指定字体为“Tahoma”,其他属性均复制自ft1

>>> ft1.name

'Arial'

>>> ft2.name

'Tahoma'

>>> ft2.size

14.0

基本字体颜色

字体颜色有一些颜色常量,可以直接调用:

from openpyxl.styles import Font

from openpyxl.styles.colors import RED

font = Font(color=RED)

font = Font(color="00FFBB00")

也可以按索引创建实例:

from openpyxl.styles.colors import Color

c = Color(indexed=32)

c = Color(theme=6, tint=0.5)

说到颜色,V2.3.5版本必须使用“00XXXXXX”的格式,不能使用“#XXXXXX”的格式。如果颜色不生效请查看版本后修改。

应用样式

可以直接应用到单元格:

from openpyxl.workbook import Workbook

from openpyxl.styles import Font, Fill

wb = Workbook()

ws = wb.active

c = ws['A1']

c.font = Font(size=12)

可以对整行整列设置样式,前提是单元格已创建。

col = ws.column_dimensions['A']

col.font = Font(bold=True)

row = ws.row_dimensions[1]

row.font = Font(underline="single")

数据格式

数据格式属性number_format的值是字符串类型,不为对象,直接赋值即可。

openpyxl内置了一些数据格式查看openpyxl.styles.numbers,也支持excel自定义格式,以下两种方式效果相同:

# 使用openpyxl内置的格式

from openpyxl.styles import numbers

ws.cell['D2'].number_format = numbers.FORMAT_GENERAL

ws.cell(row=2, column=4).number_format = numbers.FORMAT_DATE_XLSX15# 直接使用字符串

ws.cell['D2].number_format = 'General'

ws.cell(row=2, column=4).number_format = 'd-mmm-yy'

编辑页面设置

from openpyxl.workbook import Workbook

wb = Workbook()

ws = wb.active

ws.page_setup.orientation = ws.ORIENTATION_LANDSCAPE

ws.page_setup.paperSize = ws.PAPERSIZE_TABLOID

ws.page_setup.fitToHeight = 0

ws.page_setup.fitToWidth = 1

编辑打印选项

from openpyxl.workbook import Workbook

wb = Workbook()

ws = wb.active

ws.print_options.horizontalCentered = True

ws.print_options.verticalCentered = True

以上就是openpyxl设置单元格样式的方法,更多Python学习推荐:云海天Python教程网

python修改单元格格式_Python之如何设置openpyxl单元格格式相关推荐

  1. python秒数转化为时间格式_python将秒数转化为时间格式的实例

    python将秒数转化为时间格式的实例 1.转化成时间格式 seconds =35400 m, s = divmod(seconds, 60) h, m = divmod(m, 60) print(& ...

  2. python修改y轴刻度_Python | Y轴刻度限制

    python修改y轴刻度 In some cases, we need to visualize our data within some defined range rather than the ...

  3. python修改文件的方法_python中文件操作实现全文或单行替换方法

    python修改文件时,使用w模式会将原本的文件清空/覆盖.可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开.替换文本中的taste 为 tasting Yesterday when ...

  4. python修改自己的代码_python修改微信和支付宝步数的示例代码

    项目意义 如果你想在支付宝蚂蚁森林收集很多能量种树,为环境绿化出一份力量,又或者是想每天称霸微信运动排行榜装逼,却不想出门走路,那么该python脚本可以帮你实现. 实现方法 手机安装第三方软件乐心健 ...

  5. html统计表合并单元格的快捷键,word怎样设置合并单元格快捷键

    word2010中合并单元格的快捷键是什么?求解答. 合并单元格没有快捷键,不过有个f4是重复上一步操作,所以你要合并多个单元格,那么你可以先点一合并单元格,然后选定你要合并的区域. WORD合并单元 ...

  6. python设置单元格宽度_python – 在Excel中调整单元格宽度

    我正在使用xlsxwriter写入Excel工作表.我面临的问题是:当文本超过单元格大小时,它会被隐藏. import xlsxwriter workbook = xlsxwriter.Workboo ...

  7. python查找excel中内容_Python 根据关键字查找xls单元格内容

    必要的第三方库:xlrd 功能:根据传入的关键字来检索xls,读取关键字所在的单元格相邻单元格的内容.仅能处理xls. 用法:excel_read(需要查找单元格内容的xls文件路径,检索关键字(只接 ...

  8. excel单元格下拉选项怎么设置_Excel单元格内容这样设置才不能被修改

    1,打开excel表格,对需要锁定的部分单元格进行全选,然后点击鼠标右键,在弹出来的设置功能中,选择"设置单元格格式".(如下图) 2,接着来到设置单元格格式下的"数字& ...

  9. .net 导出html 到excel 合并单元格,C#导出Excel,并且设置Excel单元格格式,合并单元格....

    注:要添加COM组件 Microsoft Excel 11.0 Object Library  引用. 具体代码如下: using System; using System.Collections.G ...

最新文章

  1. python 图表_Python入门学习系列——使用Python调用Web API实现图表统计
  2. web开发流程 - 网上商城示例
  3. 不依赖远程API启动SEER区块链命令行钱包和网页钱包的方法
  4. 反编译工具的使用和字节码文件的查看(Binary Viewer)
  5. java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...
  6. SpringBoot入门到精通_第6篇 _必知必会
  7. 开发指南专题九:JEECG微云快速开发平台-表单校验组件ValidForm
  8. 【script】python通过字符串调用方法
  9. (转)Bootstrap 之 Metronic 模板的学习之路 - (3)源码分析之 body 部分
  10. Oracle DML封锁机制研究
  11. 小型公司 --- OSPF 不连续区域进行通信配置
  12. Python自动化运维之21、CSS
  13. 以太坊DAO之股东协会智能合约
  14. 记忆减退之----LM1117 电路连接图
  15. 动态规划 最长公共子序列 过程图解
  16. 【转载】linux修改文件的所有者权限[root权限更改为用户权限]
  17. wireshark解析信令tshark
  18. 医疗数据交易平台-区块链解决方案
  19. DNSPod十问德佑刘勇:传统地产业数字化转型会让10万人失业吗?
  20. 吉林大学软件学院《软件项目管理》课程重点与测试题 第七章 质量计划和缺陷估计

热门文章

  1. 【一天一个挨打小技巧】格式工厂+万能格式转换YYDS,重磅出击
  2. 【Lilishop商城】No3-5.模块详细设计,商品模块-1(商品分类、品牌管理、规格管理、参数、计量单位、店铺分类)的详细设计
  3. HQChart小程序教程3-新版2D单画布如何切换K线图和分时图
  4. 终端 ctrl+s 锁屏问题
  5. CCriticalSection 在哪个.h头文件
  6. 基于MVC4+EasyUI的Web开发框架经验总结(11)--使用Bundles处理简化页面代码
  7. 【Java设计模式 面向对象设计思想】五 多用组合少用继承编程
  8. linux中配置MPE和MADDPG环境
  9. # 区块链隐私保护综述
  10. 【GEE】 【初探 GEE 账号申请与注册】