欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[Python]xlwings的应用

程序员文章站 2024-02-23 17:52:28
...

打开应用

xw_app=xlwings.App(args)

  • visible:True/False 程序可见/隐藏
  • add_book:True/False 是否新建工作簿
xw_app=xlwings.App(visible=False) #打开应用并设置后台运行

打开文件

fileName='test.xlsx'
xw_book=xlwings.Book(fileName) #得到工作簿
xw_sheet=xlwings.Book(fileName).sheets[name] #得到工作表

得到最后一列

#光标在第row行第col列的位置向右移到最后一列(等效于Ctrl+→),获取位置并拆分
last_col=xw_sheet.range(row, col).end('right').get_address().split('$')[1] 

得到最后一行

#光标在第row行第col列的位置向下移到最后一行(等效于Ctrl + ↓),获取位置并拆分
last_row=xw_sheet.range(row, col).end('down').get_address().split('$')[1] 

单元格替换

xw_sheet.range(‘A1:B5’).api.Replace(args)

  • What:’’ 查询的值
  • Replacement:’’ 替换的值
  • LookAt:1/0 完全匹配/部分匹配
  • MatchCase:True/False 是否区分大小写
#把区域内的0替换为1,完全匹配单元格,区分大小写
xw_sheet.range('A1:B5').api.Replace(What='0',Replacement='1',LookAt=1,MatchCase=True) 

单元格赋值

Excel公式

当前单元格的上一行单元格位置

func='INDIRECT(SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,"")&"2:"&SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,"")&ROW()-1)'
  • 返回当前列名
    SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,"")
  • 返回当前行名
    ROW()
  • 把字符串格式的range转引用
    INDIRECT("A1:A2")

为区域统一赋上公式

xw_sheet.range('A1:A5').value = '=sum('+func+')'

添加背景色

xw_sheet.range('A1:A5').color=(255,255,0)

设置字体格式

xw_sheet.range('A1:A5').api.Font.Bold=True #加粗
xw_sheet.range('A1:A5').api.Font.Name = '微软雅黑' #设置字体
xw_sheet.range('A1:A5').api.Font.Size = 20 # 设置字号
xw_sheet.range('A1:A5').api.Font.Color = 0x0000ff #设置颜色

设置对齐格式

HorizontalAlignment 参数 VerticalAlignment 参数
居中对齐 -4108 居中对齐 -4108
左对齐 -4131 顶部对齐 -4160
右对齐 -4152 底部对齐 -4107
自动换行对齐 -4130
xw_sheet.range('A1:A5').api.HorizontalAlignment = -4108 #设置区域水平居中对齐

添加边框

Borders 参数 LineStyle 参数 weight 参数
左上右下对角线 5 实线 1 边框粗细 int
左下右上对角线 6 虚线 2
左边框 7 点划线 4
上边框 8 双点划线 5
下边框 9
右边框 10
内纵边框 11
内横边框 12
xw_sheet.range('A1:A5').api.Borders(8).LineStyle = 1 #为区域添加上边框实线

设置行列宽度

xw_sheet.range('A1:A5').columns.autofit() #自动调整区域列宽
xw_sheet.range('A1:A5').rows.autofit() #自动调整区域行宽
xw_sheet.range('A1:A5').column_width=10 # 设置固定列宽值
xw_sheet.range('A1:A5').row_height=10 # 设置固定行宽值

保存文件

xw_book.save('new'+fileName) #保存工作簿

关闭资源

xw_book.close() #关闭工作簿
xw_app.quit() #关闭应用