python设置excel的格式_Python:利用xlwt设置Excel单元格格式

xlwt介绍和安装

pip install xlwt

在保存之前,可以设置单元格的属性,官网提供了以下6种设置。

Group

Attributes

Number format

Number format index (index to FORMAT record)

Font

Font index (index to FONT record)

Alignment

Horizontal and vertical alignment, text wrap, indentation, orientation/rotation, text direction

Border

Border line styles and colours

Background

Background area style and colours

Protection

Cell locked, formula hidden

此文介绍其中4种:

Font:字体设置

Alignment:对准设置

Border:边框设置

Background:背景设置

创建表格

创建一个表格的流程

定义workbook

添加sheet

创建一个样式对象style,设置格式(这一步可以省略,出来就是默认格式)

给表格赋值

保存表格

我们首先创建一个最简单的表格,不做任何格式,内容就是从0-71的数字。

import xlwt

# 定义workbook

workbook = xlwt.Workbook()

# 添加sheet,这个sheet的名字叫'Style'

sheet = workbook.add_sheet('Style')

# 写入数据

row = 0 # 行

column = 0 # 列

for i in range(72):

sheet.write(row, column, i) # 写入数据,第row行,第column列,具体内容是i

column += 1

if column > 8:

column = 0

row += 1

# 定义保存Excel的位置和文件名。默认是和代码存在一个路劲下面。

workbook.save('CreatExcelTable.xls')

此时运行代码,生成的文件如下所示

b7c387a84204

能生成一个表格之后,我们开始来设置格式,包括设置字体、居中、边框和背景。

设置格式

1、设置单元格背景

先说设置单元格背景,因为背景设置主要是颜色的设置。这个颜色的识别,是通用的。

我们在设置字体、单元格填充时,会进行颜色的设置。比如将字体设置成红色,将单元格设置成黄色。在xlwt设置中,每一个颜色,都由相对应的数字表示。具体参照下图,给大家分别展示了,当字体是白色或者黑色时,单元格颜色的显示效果。

b7c387a84204

颜色对应的序号,字体为白色

b7c387a84204

颜色对应的序号,字体为黑色

设置表格格式,我们首先要先定义一个样式

# 创建一个样式对象,初始化样式 style

style = xlwt.XFStyle()

接着进行背景设置

pattern = xlwt.Pattern()

pattern.pattern = xlwt.Pattern.SOLID_PATTERN # May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12

pattern.pattern_fore_colour = 4 # 给背景颜色赋值

根据上图可知,0代表黑色,1代表白色,2代表红色,以此类推。后续所有涉及颜色的操作,都以此数字代表。

颜色参照上面的规则,比如,4,对应的是,深蓝色

设置好之后,把这个背景,应用到刚刚的 style 上面去

style.pattern = pattern # 把背景颜色加到表格样式里去

最后,在赋值的时候,把格式带上

sheet.write(row, column, i) # 不带格式

sheet.write(row, column, i, style) # 有格式

2、设置字体格式

与上述一致,我们先要先定义一个样式

# 创建一个样式对象,初始化样式 style

style = xlwt.XFStyle()

接着进行字体设置

# 为样式创建字体

font = xlwt.Font()

font.name = 'Calibri' # 设置字体

font.colour_index = 4 # 设置字体颜色

font.height = 400 # 字体大小

字体大家可以任选,和Excel里面字体的名字匹配就可以

颜色参照上面的规则,比如,4,对应的是,深蓝色

字体大小也看大家心情啦

设置好之后,把这个字体,应用到刚刚的 style 上面去

style.font = font

最后,在赋值的时候,把格式带上

sheet.write(row, column, i) # 不带格式

sheet.write(row, column, i, style) # 有格式

完整代码

import xlwt

workbook = xlwt.Workbook()

sheet = workbook.add_sheet('Font')

# 创建一个样式对象,初始化样式 style

style = xlwt.XFStyle()

# 为样式创建字体

font = xlwt.Font()

font.name = 'Calibri' # 设置字体

font.colour_index = 4 # 设置字体颜色

font.height = 400 # 字体大小

# 定义格式-字体

style.font = font

# 写入数据

row = 0 # 行

column = 0 # 列

for i in range(72):

sheet.write(row, column, i, style) # 增加样式

if column > 8:

column = 0

row += 1

workbook.save('Font.xls')

此时效果如下图所示,字体是Calibri,颜色是蓝色,字体大小是400

b7c387a84204

我们对字体进行进一步设置,设置粗体、斜体、下划线等

font.name = 'Times New Roman' # 设置字体

font.color_index = color # 设置字体颜色

font.height = 400 # 字体大小

font.bold = True # 字体是否为粗体

font.italic = True # 字体是否为斜体

font.underline = True # 字体是否有下划线

font.struck_out =True # 字体中是否有横线

我们来看一下粗体、斜体和下划线的效果。下划线的颜色和粗细,是随着字体走的。字体粗体,下划线也是粗体。

b7c387a84204

下面是横线效果

b7c387a84204

3、位置设置

目前我只会设置水平位置

有些文章说,通过al.vert可以设置垂直位置,我尝试了没效果

后续如果学会了,再来更新

alignment = xlwt.Alignment()

alignment .horz = 1 # 设置水平位置,0是左对齐,1是居中,2是右对齐

# 设置自动换行

alignment.wrap = 1

style.alignment = alignment

b7c387a84204

4、边框设置

# 设置边框

borders = xlwt.Borders() # Create Borders

# DASHED虚线

# NO_LINE没有

# THIN实线

borders.left = xlwt.Borders.DASHED

borders.right = xlwt.Borders.DASHED

borders.top = xlwt.Borders.DASHED

borders.bottom = xlwt.Borders.DASHED

borders.left_colour = color

borders.right_colour = color

borders.top_colour = color

borders.bottom_colour = color

style.borders = borders

边框颜色随意,这个不多说了。讲一下边框的线条。

有两种定义方式,一种是用DASHED、THIN来表示

# DASHED虚线

# NO_LINE没有

# THIN实线

borders.left = xlwt.Borders.DASHED

borders.right = xlwt.Borders.DASHED

borders.top = xlwt.Borders.DASHED

borders.bottom = xlwt.Borders.DASHED

效果如下

b7c387a84204

实线边框

b7c387a84204

虚线边框

还有一种,可以直接用数字表示

# 细实线:1,小粗实线:2,细虚线:3,中细虚线:4,大粗实线:5,双线:6,细点虚线:7

# 大粗虚线:8,细点划线:9,粗点划线:10,细双点划线:11,粗双点划线:12,斜点划线:13

borders.left = 1

borders.right = 2

borders.top = 3

borders.bottom = 4

这边展示了,不同数字对应的边框样式

b7c387a84204

根据数字定义边框

最后

目前关于xlwt的学习,就差不多这样。后续学了更多东西,再来补充~~

参考网址

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值