vb设置excel字体加粗微软雅⿊_Python操作Excel的Xlwings教
程(六)
最近在使⽤Xlwings的时候,发现有对Excel表格进⾏设置字体⼤⼩和颜⾊等操作。想必⼩伙伴们在⽇常的⼯作中也遇到了这样的问题,为此我这⾥总结⼀些操作供⼤家参考:
⼀、创建表格
import xlwings as xw
App = xw.App(visible=False, add_book=False)
wb = App.books.add()
sheet = wb.sheets.add('test_sets')
# Expands the range according to the mode provided. Ignores empty top-left cells (unlike ``d()``).
# 将第⼀⾏置为1,2,3,4
# 将第2⾏开始的第⼀列置为11,12,13,14
sheet.range(1, 1).expand('right').value = [1, 2, 3, 4]
python和vb的代码可以通用吗
sheet.range(2, 1).expand('down').options(transpose=True).value = [10, 20, 30, 40]
wb.save('test_sets.xlsx')
wb.close()
App.quit()
创建的结果:新建了⼀个名test_sets.xlsx的⽂件,在该⽂件的test_sets页签上写⼊了⼀些数据,数据显⽰如下:
接下来我们将基于这个表格,做⼀些字体的⼤⼩颜⾊等设置的操作。
⼆、字体属性设置
在官⽹的Xlwings的教程中没有介绍直接设置Excel单元格字体的⽅式,但是提供了⼀个API供我们使⽤:
这句话是什么意思呢?其实就是说使⽤api将返回windows Excel库中的api调⽤,api可以参考官⽅⽂档链接:
另外,我们在微软官⽹的VBA教程中,发现了⼀个关于Font对象的相关操作:
VBA设置字体的⽅式就是:
Worksheets("Sheet1").Range("A1:C5").Font.Bold = True
Bold就是给选中的单元格进⾏加粗。这个Font对象其他的⼀些属性还有以下⼏种:
我们来介绍⼀下其中主要的⼀些属性的意义(摘⾃官⽹):
那么在Xlwings中该怎么设置字体的⼤⼩呢?我们可以这样来进⾏设置,在设置之前我们先看看设置之前单元格的或字体的默认值:
import xlwings as xw
App = xw.App(visible=False, add_book=False)
wb = App.books.open('test_sets.xlsx')
sheet = wb.sheets('test_sets')
sheetFont_name = sheet.range('B1').api.Font.Name
sheetFont_size = sheet.range('B1').api.Font.Size
sheetFont_bold = sheet.range('B1').api.Font.Bold
sheetFont_color = sheet.range('B1').api.Font.Color
sheetFont_FontStyle = sheet.range('B1').api.Font.FontStyle
print('字体名称:', sheetFont_name)
print('字体⼤⼩:', sheetFont_size)
print('字体是否加粗:', sheetFont_bold)
print('字体颜⾊:', sheetFont_color)
print('字体类型:',sheetFont_FontStyle)
wb.save()
wb.close()
App.quit()
输出结果如下:
字体名称: 等线
字体名称
字体⼤⼩
字体⼤⼩: 11.0
字体是否加粗: False
字体是否加粗
字体颜⾊: 0.0
字体颜⾊
字体类型: 常规
字体类型
接下来,我们来对单元格B1进⾏⼀些设置:
sheet.range('B1').api.Font.Name = '微软雅⿊'
sheet.range('B1').api.Font.Size = 20
sheet.range('B1').api.Font.Bold = True
sheet.range('B1').api.Font.Color = 0x0000ff
sheet.range('B1').api.Font.FontStyle = "Bold Italic"
上述代码的设置结果为,具体的显⽰如下所⽰:
字体名称
字体名称: 微软雅⿊
字体⼤⼩: 20.0
字体⼤⼩
字体是否加粗
字体是否加粗: True
字体颜⾊: 255.0
字体颜⾊
字体类型: 加粗倾斜
字体类型
其中字体颜⾊为255.0,即为红⾊。当然了设置的时候我们传⼊的⼗六进制的颜⾊值,这个⼗六进制的颜⾊值⼤家可以百度⼀下这个颜⾊值。根据最后的输出结果,我们在进⾏设置的时候也可以直接进⾏这样的设置:
sheet.range('B1').api.Font.Color = 255.0
⼤家可以参考VBA中的设置:
Charts("Chart1").Axes(xlValue).TickLabels.Font.Color = _ RGB(0, 255, 0)
三、单元格属性设置
单元格的⼀些设置前期也有部分涉及到,这次我们来总结⼀下并增加⼀些其他的属性设置。我们先看代码:
sheet.range('B1').api.HorizontalAlignment = -4108    # -4108 ⽔平居中
sheet.range('B1').api.VerticalAlignment = -4130      # -4108 垂直居中
sheet.range('B1').api.NumberFormat = "0.00"          # 设置单元格的数字格式
⽂件结果显⽰如下:
上述数值是怎么确定的呢?
是查看Excel的⽂档的,拿HorizontalAlignment 举例:
Step1: 进⼊到⽹址:
Step2: 在Filter by title地⽅输⼊
HorizontalAlignment。
Step3:到属于Range下的这个链接,点进⼊。
Step4: 我们就可以看到:
Range.HorizontalAlignment Property的值。
Step5:点2处的XlHAlign,就可以看到⼀些属性值的介绍了:
所以说,⼤家要多阅读官⽹的⽂档,多查⼀下它们的⽤法。
接着我们来看⼀下边框的设置,在设置边框值之前,这⾥给出常⽤边框的索引:
给定⼀个常⽤链接,包含Excel对象模型中的枚举对象的⼀些信息:
我们上述查询的xlbordersindex就可以在这个界⾯查询得到。
假设现在我们的Excel的Sheet的数据形式如下:
我们运⾏⼀下代码:
# 从范围中每个单元格的左上⾓到右下⾓的边框
sheet.range('C1').api.Borders(5).LineStyle = 1
sheet.range('C1').api.Borders(5).Weight = 2
# 从范围中每个单元格的左下⾓到右上⾓的边框
sheet.range('D1').api.Borders(6).LineStyle = 1
sheet.range('D1').api.Borders(6).Weight = 2
# 左边框,虚线
sheet.range('C3').api.Borders(7).LineStyle = 2
sheet.range('C3').api.Borders(7).Weight = 2
# 顶边框,双点划线
sheet.range('C3').api.Borders(8).LineStyle = 5
sheet.range('C3').api.Borders(8).Weight = 2
# 底部边框,直线,设置边框粗细为2
sheet.range('C3').api.Borders(9).LineStyle = 1
sheet.range('C3').api.Borders(9).Weight = 2
# 右边框,点划线
sheet.range('C3').api.Borders(10).LineStyle = 4
sheet.range('C3').api.Borders(10).Weight = 2
结果显⽰如下:
是不是很简单,就是对Borders()中传⼊不同的index值就可以达到不同的效果。备份表格区域:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。