xlsxwriter 学习笔记之单元格类
xlsxwriter是python中操作excel的非常全面高效的库。它可以帮助我们高效快速,大批量的,自动化的操作excel,可以帮助我们进行写入操作,可以写数据,画图能完成大部分常用的excel操作,如果想要读取excel则需要另一个库xlrd。对于日常进行大量的excel的数据分析和处理工作的人来说,这个库可以帮助我们减少大量的重复性工作,实现自动化。有了这个库,python就可以在一些工作上替代VBA,让我们的办公工具更加单一简单。因为公司需要,本人开始学习了解。
介绍用于在Excel中格式化单元格的方法和属性。
可以格式化的单元格的属性包括:
字体,颜色,图案,边框,对齐和数字格式
。
1.
创建Format对象
通过调用工作簿
add_format()
方法创建格式对象。
cell_format1 = workbook.add_format() # 之后设置属性
cell_format2 = workbook.add_format(props) # 创建对象时设置属性
设置格式属性:
有两种方法:使用对象接口或将属性设置为构造函数中键/值对的字典。
# 第一种
cell_format = workbook.add_format()
cell_format.set_bold()
cell_format.set_font_color('red')
# 第二种
cell_format = workbook.add_format({'bold': True, 'font_color': 'red'})
# 构造了Format对象并且已经设置了它的属性,它就可以作为参数传递给工作表write方法
worksheet.write(0, 0, 'Foo', cell_format)
worksheet.write_string(1, 0, 'Bar', cell_format)
worksheet.write_number(2, 0, 3, cell_format)
worksheet.write_blank (3, 0, '', cell_format)
# 也可以传递给工作表set_row()和set_column() 方法,以定义行或列的默认格式设置属性
worksheet.set_row(0, 18, cell_format)
worksheet.set_column('A:D', 20, cell_format)
单元格格式的默认值情况
cell_format = workbook.add_format()
cell_format.set_bold() # 打开
cell_format.set_bold(True) # 一样打开
# 由于大多数属性在默认情况下已经关闭,因此通常不需要将其关闭。
cell_format.set_bold(False) # 关闭
2.单元格格式方法和属性
# 指定单元格格式中使用的字体
cell_format.set_font_name('Times New Roman')
# 设置单元格格式的字体大小
cell_format.set_font_size(30)
# 设置字体颜色
cell_format.set_font_color('red')
worksheet.write(0, 0, 'wheelbarrow', cell_format)
# 颜色可以是Html样式#RRGGBB字符串或有限数量的命名颜色。
# 设置字体的粗体属性
cell_format.set_bold()
# 设置字体的斜体属性
cell_format.set_italic()
# 设置格式的下划线属性
cell_format.set_underline()
# 设置字体的删除线属性
cell_format.set_font_strikeout()
# 设置字体的上标/下标属性,1 =上标, 2 =下标
cell_format.set_font_script()
# 设置单元格的数字格式
cell_format1 = workbook.add_format()
cell_format2 = workbook.add_format()
cell_format1.set_num_format('d mmm yyyy')
cell_format2.set_num_format(0x0F)
cell_format01.set_num_format('0.000')
worksheet.write(1, 0, 3.1415926, cell_format01) # -> 3.142
cell_format02.set_num_format('#,##0')
worksheet.write(2, 0, 1234.56, cell_format02) # -> 1,235
cell_format03.set_num_format('#,##0.00')
worksheet.write(3, 0, 1234.56, cell_format03) # -> 1,234.56
cell_format04.set_num_format('0.00')
worksheet.write(4, 0, 49.99, cell_format04) # -> 49.99
cell_format05.set_num_format('mm/dd/yy')
worksheet.write(5, 0, 36892.521, cell_format05) # -> 01/01/01
cell_format06.set_num_format('mmm d yyyy')
worksheet.write(6, 0, 36892.521, cell_format06) # -> Jan 1 2001
cell_format07.set_num_format('d mmmm yyyy')
worksheet.write(7, 0, 36892.521, cell_format07) # -> 1 January 2001
cell_format08.set_num_format('dd/mm/yyyy hh:mm AM/PM')
worksheet.write(8, 0, 36892.521, cell_format08) # -> 01/01/2001 12:30 AM
cell_format09.set_num_format('0 "dollar and" .00 "cents"')
worksheet.write(9, 0, 1.87, cell_format09) # -> 1 dollar and .87 cents
# 附加条件的格式化
cell_format10.set_num_format('[Green]General;[Red]-General;General')
worksheet.write(10, 0, 123, cell_format10) # > 0 Green
worksheet.write(11, 0, -45, cell_format10) # < 0 Red
worksheet.write(12, 0, 0, cell_format10) # = 0 Default color
# 设置单元格锁定状态
locked = workbook.add_format()
locked.set_locked(True)
unlocked = workbook.add_format()
locked.set_locked(False)
worksheet.protect()
worksheet.write('A1', '=1+2', locked)
worksheet.write('A2', '=1+2', unlocked)
# 隐藏单元格中的公式
hidden = workbook.add_format()
hidden.set_hidden()
worksheet.protect()
worksheet.write('A1', '=1+2', hidden)
设置单元格中数据的对齐方式:
有水平和垂直两个方向。
水平方向
|
left
|
center
|
right
|
fill
|
justify
|
center_across
|
distributed
|
垂直方向
|
top
|
vcenter
|
bottom
|
vjustify
|
vdistributed
|
cell_format = workbook.add_format()
cell_format.set_align('center')
cell_format.set_align('vcenter')
worksheet.set_row(0, 70)
worksheet.set_column('A:A', 30)
worksheet.write(0, 0, 'Some Text', cell_format)
设置单元格中文本数据换行:
# 为单元格中的文本打开文本换行
cell_format = workbook.add_format()
cell_format.set_text_wrap()
worksheet.write(0, 0, "Some long text to wrap in a cell", cell_format)
# 如果希望控制文本的位置,可以在字符串中添加换行符:
worksheet.write(2, 0, "It's\na bum\nwrap", cell_format)
设置单元格中的文本旋转 :
旋转角度是-90到90度之间,同时支持270度。
设置单元格中的文本缩进:
cell_format1 = workbook.add_format()
cell_format2 = workbook.add_format()
cell_format1.set_indent(1)
cell_format2.set_indent(2)
worksheet.write('A1', 'This text is indented 1 level', cell_format1)
worksheet.write('A2', 'This text is indented 2 levels', cell_format2)
设置缩小文本:
接下来,可以对文本设置缩小以适合单元格。
cell_format = workbook.add_format()
cell_format.set_shrink()
worksheet.write(0, 0, 'Honey, I shrunk the text!', cell_format)
设置单元格背景图案:
最常见的图案是1,它是背景颜色的实心填充。
format.set_pattern()
设置单元格背景图案颜色:
cell_format = workbook.add_format()
cell_format.set_pattern(1) # 选择一种图案的模式,1是实心填充
cell_format.set_bg_color('green')
worksheet.write('A1', 'Ray', cell_format)
设置单元格中前景图案的颜色:
set_fg_color()
参数:
|
color
(
string
) - 单元格字体颜色。
|
颜色可以是Html样式
#RRGGBB
字符串或有限数量的命名颜色。
请参阅
使用颜色
。
设置单元格边框样式:
set_border()
参数:
|
style
(
int
) - 边框样式索引。默认值为1。
|
可以使用以下方法使用相同的参数配置各个边框元素:
单元格边框由底部,顶部,左侧和右侧的边框组成。可以使用
set_border()
或单独使用上面显示的相关方法调用将它们设置为相同的值。
以下显示按XlsxWriter索引号排序的边框样式:
Index
|
Name
|
Weight
|
Style
|
0
|
None
|
0
|
|
1
|
Continuous
|
1
|
-----------
|
2
|
Continuous
|
2
|
-----------
|
3
|
Dash
|
1
|
- - - - - -
|
4
|
Dot
|
1
|
. . . . . .
|
5
|
Continuous
|
3
|
-----------
|
6
|
Double
|
3
|
===========
|
7
|
Continuous
|
0
|
-----------
|
8
|
Dash
|
2
|
- - - - - -
|
9
|
Dash Dot
|
1
|
- . - . - .
|
10
|
Dash Dot
|
2
|
- . - . - .
|
11
|
Dash Dot Dot
|
1
|
- . . - . .
|
12
|
Dash Dot Dot
|
2
|
- . . - . .
|
13
|
SlantDash Dot
|
2
|
/ - . / - .
|
之后我们也可以对上下左右四个边框,设置其颜色和样式,接口名称在最前面的表格里面有。设置方法相同。
上述内容均来自官方文档,读者也可直接阅读
官方文档。
xlsxwriter 学习笔记之单元格类xlsxwriter是python中操作excel的非常全面高效的库。它可以帮助我们高效快速,大批量的,自动化的操作excel,可以帮助我们进行写入操作,可以写数据,画图能完成大部分常用的excel操作,如果想要读取excel则需要另一个库xlrd。对于日常进行大量的excel的数据分析和处理工作的人来说,这个库可以帮助我们减少大量的重复性工作,实现自动...
资源名称:
Python
学习
笔记
第
二
版内容简介:
Python
学习
笔记
第
二
版雨痕的
python
学习
笔记
, 很好的
学习
资料,想
学习
python
的朋友可以收藏下。 资源截图:
资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
import
xlsxwriter
# 导入模块
workbook =
xlsxwriter
.Workbook('C:Users/Jllf/Desktop/my_excel.xlsx') # 新建excel表,可写入要保存的路径
worksheet = workbook.add_worksheet() # 新建sheet,也可设置为sheet的名称为"sheet1"等自定义字段
headings = ['时间', "姓名", '年龄'] # 设置表头数据
data =
font_name = 'Arial' # 字体
font_size = 11 # 字号
font_color = 0x0 # 颜色
bold = True # 加粗
italic = True # 斜体
underline = 0 #