xlwings常用代码

xlwings的好处是和Excel交互比较多,可以和VBA相互调用,语法也和VBA相同,但使用需要Excel程序,因此无法在linux环境下使用

工作簿和表的操作

app=xw.App(visible=True,add_book=False) #指定一个excel程序用于控制
app.display_alerts=False #关闭excel警报
app.screen_updating=False #关闭屏幕刷新
#新建一个表
wb2 = app.books.add() #在目前的excel程序中新建一个工作簿
wb2.save(r"C:\Users\Desktop\ym.xlsx") #将新建的工作簿保存并命名,不执行此步新建的工作簿只是在内存中
sh2 = wb2.sheets.add("sheet_name")  #新建的工作簿默认只有一个Sheet1,此步可新建一个sheet,并命名
sh1=wb2.sheets["Sheet1"] #指定wb2中的sheet1
sh1.name = sh1.name.replace("Sheet1","汇总") #对sheet1进行重命名
sh1.range("A1").value = 1 #对A1单元格赋值
sh2.range("A1:B2").value= [1,2,3,4] #对区域A1:B2赋值
sh1.range(1,1).value = 1 #同上
sh1.range((1,1),(2,2)).value = 1 #同上
wb.fullname #工作簿的绝对路径
ws.name='表格1' #修改表名
wb.sheets #显示当前工作簿中所有表单
wb2.sheets.count #表单的个数
sht.name #表单的名字
sh1.name = "myshet" #修改sheet名字
ws = wb.sheets.active #获取当前表
sht=xw.books['test2'].sheets['sheet1'] #引用工作表(指定工作表)
sht.activate() #激活sheet1为活动工作表
sht.clear() #清除sheet1的内容和格式
sht.contents() #清除sheet1的内容
sht.delete #sht.delete#读取原表
wb=app.books.open(excel_path) #读取一个excel表
sht1 = wb.sheets[1] #指定sht1为该工作簿中第一个sheet
sht1 = wb.sheets["Sheet1"] #同上
info=sht1 .used_range #获取该sheet数据的使用范围
rows, columns = sht1.used_range.shape #获取最大行数和列数
wb.save() #保存工作簿
#wb.close() #关闭工作簿
#app.quit()    # quit() 有时关闭不了进程,即在后台该进程还在。
app.kill()     # 使用kill()关闭进程。

行列操作

sht.api.rows(1).delete #删除首行
sht.api.columns(1).delete# 删除首列
sht.api.columns(1).insert #插入列
sht.api.rows(1).insert #插入行
sht.api.rows('2:4').insert #在第二行前插入3行空白行
sht.api.rows('2:4').delete #删除第2-4行

单元格操作

rng=sht.range('A1') #指定单元格
rng = sht['A1'] #同上
rng = sht[0,0] #第一行的第一列即A1,注意,下标从0开始
rng = sht.range('A1:A5') #引用单元格区域
rng = sht['A1:A5'] #同上
rng = sht[:5,0] #同上
arr = ['1','2','3']
sht.range('A1:A3').value=arr #赋值
sht.range('A1').value=[1,2,3] #写入单元格A1:C1内容
sh1.range('C1').options(transpose=False).value = [1,2,3]  #transpose为真则转置,为假则不转置
sht.range('A1').clear() #清除单元表内容和格式
sh1.range('A1').column #获取列标
sht.range('A1').columns   # 返回单元格绝对地址RangeColumns(<Range [test2.xls]Sheet1!$A$1>)
sht.range('A1').row #获取行标
sht.range('A1').column_width #获取列宽
sht.range('A1').row_height #获取行高
sht.range('A1').rows.autofit() #行高自适应
sht.range('A1').columns.autofit() #列宽自适应
sht.range('A1').color=(34,156,65) #给单元格A1设置背景色
sht.range('A1').color #返回单元格颜色的RGB值
sht.range('A1').color = None   #清除单元格颜色
sht.range('B6').formula='=SUM(B2:B5)'   #输入公式,获取相应单元格执行结果
sht.range('A1').formula_array  #获取单元格公式
for i in range(1,11):print(sht.range("A"+str(i)).value) #获取A列A1:A10的全部内容
for j in ("A","B","C","D","E"):print(sht.range(j+str(1)).value) #获取A1-E1所有的内容
'''插入 、删除 一行'''
sht1.range('a3').api.EntireRow.Delete()     # 会删除 ’a3‘ 单元格所在的行。
sht1.api.Rows(3).Insert()                   # 会在第3行插入一行,原来的第3行下移。
'''插入 、删除 一列'''
sht1.range('c2').api.EntireColumn.Delete()  # 会删除 ’c2‘ 单元格所在的列。
sht1.api.Columns(3).Insert()                # 会在第3列插入一列,原来的第3列右移。(也可以用列的字母表示)

格式操作

b3 = sh1.range("A1")
b3.color = 255,200,255         # 设置单元格的填充颜色
b3.api.Font.ColorIndex = 3     # 设置字体的颜色,具体颜色索引见下方。
b3.api.Font.Size = 24          # 设置字体的大小。
b3.api.Font.Bold = True        # 设置为粗体。
b3.api.HorizontalAlignment = -4108    # -4108 水平居中。 -4131 靠左,-4152 靠右。
b3.api.VerticalAlignment = -4130      # -4108 垂直居中(默认)。 -4160 靠上,-4107 靠下,-4130
b3.api.NumberFormat = "0.00"          # 设置单元格的数字格式。
"""设置边框"""
# Borders(9) 底部边框,LineStyle = 1 直线。
b3.api.Borders(9).LineStyle = 1
b3.api.Borders(9).Weight = 3                # 设置边框粗细。# Borders(7) 左边框,LineStyle = 2 虚线。
b3.api.Borders(7).LineStyle = 2
b3.api.Borders(7).Weight = 3# Borders(8) 顶部框,LineStyle = 5 双点划线。
b3.api.Borders(8).LineStyle = 5
b3.api.Borders(8).Weight = 3# Borders(10) 右边框,LineStyle = 4 点划线。
b3.api.Borders(10).LineStyle = 4
b3.api.Borders(10).Weight = 3# Borders(5) 单元格内从左上角 到 右下角。
b3.api.Borders(5).LineStyle = 1
b3.api.Borders(5).Weight = 3# Borders(6) 单元格内从左下角 到 右上角。
b3.api.Borders(6).LineStyle = 1
b3.api.Borders(6).Weight = 3"""如果是一个区域的单元格,内部边框设置如下"""
#Borders(11) 内部垂直边线。
b3.api.Borders(11).LineStyle = 1
b3.api.Borders(11).Weight = 3
#Borders(12) 内部水平边线。
b3.api.Borders(12).LineStyle = 1
b3.api.Borders(12).Weight = 3
"""合并拆分单元格"""
sht.range('C8:D8').api.merge()      # 合并单元格 C8 到 D8
sht.range('C8:D8').api.unmerge()    # 拆分单元格。

不同表交互

''跨表格复制、粘贴'''
my_values = sht_1.range('a2:d4').options(ndim=2).value    # 读取二维的数据
sht_2.range('a1').value = my_values

颜色索引

颜色索引:
无色 = -4142,   自动 = -4105,  黑色 = 1,
白色 = 2 ,    红色 = 3,    鲜绿 = 4,
蓝色 = 5 ,    黄色 = 6,    粉红 = 7,
青绿 = 8 ,    深红 = 9,    绿色 = 10,
深蓝 = 11,    深黄 = 12 ,   紫罗兰 = 13,
青色 = 14,    灰色25 = 15,  褐色 = 53,
橄榄 = 52,    深绿 = 51,   深青 = 49,
靛蓝 = 55,    灰色80 = 56,  橙色 = 46,
蓝灰 = 47,    灰色50 = 16,  浅橙色 = 45,
酸橙色 = 43,   海绿 = 50,    水绿色 = 42,
浅蓝 = 41,     灰色40 = 48,   金色 = 44,
天蓝 = 33,     梅红 = 54,   玫瑰红 = 38,
茶色 = 40,    浅黄 = 36,   浅绿 = 35,
浅青绿 = 34,   淡蓝 = 37,   淡紫 = 39,

python调用xlwings常用代码相关推荐

  1. python调用c/c++代码以及解决ctypes.ArgumentError: argument 1: class 'TypeError': Don't know how to convert

    python在人工智能大潮的推动下越来越火,但python作为高级语言,在运行效率的上存在着短板.不过python作为胶水语言可以调用c/c++代码,这样就可以把耗时的运算操作用c/c++实现,然后用 ...

  2. python调用第三方软件发信代码_【IT专家】python调用第三方邮件接口

    本文由我司收集整编,推荐下载,如有疑问,请与我司联系 python 调用第三方邮件接口 2017/08/10 1 单线程发送 #!/usr/bin/env python# -*- coding: UT ...

  3. 【HanLp】Python调用HanLp常用接口

    HanLp目前暂不支持Python3.9 安装命令 pip install pyhanlp from pyhanlp import *print(HanLP.segment("你好,欢迎在P ...

  4. python导入json模块_Python调用json模块代码实例

    本篇文章小编给大家分享一下Python调用json模块代码实例,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Json是JavaScript Object Notation ...

  5. 如何让python调用C和C++代码

    如何让python调用C和C++代码   作者:tamsyn  来源:www.sqlite.com.cn  时间:2008-1-10  [ 字体:大 中 小 ] [ 双击滚屏 ]       安装py ...

  6. python调用谷歌翻译英文文献pdf_Python 调用 Google Translate API 批量翻译文章

    有时候批量翻译中文文章,批量变成各个小语种的语言,手动的粘贴复制是非常慢的.需要调用翻译 API 接口,综合对比市面上的各个翻译 API,个人觉得 Google 的翻译 API 最为好用和准确. 下面 ...

  7. python如何调用图片-python调用图片

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python本身也有识别图片转文字的框架,但是相比调用接口,识别的精度就略显不行 ...

  8. Python调用Unit闲聊对话API的应用

    文章目录 1 机器人的创建 2 Python调用API的代码实现 简介:利用百度大脑平台(百度智能对话定制与服务平台,即UNIT)提供的API接口,实现可以完成闲聊功能的智能对话机器人 1 机器人的创 ...

  9. python调用开源求解器SCIP求解带时间窗车辆路径问题(VRPTW)

    文章目录 1. 问题定义 2. 数学模型 3. python调用SCIP实现代码 4. 结果 参考文献 1. 问题定义 带时间窗车辆路径问题(vehicle routing problem with ...

最新文章

  1. ARM汇编:加载和存储指令集(六大类)---LDR(ADR)、LDRB、LDRH、STR、STRB、STRH
  2. layui 表格新增删除一行
  3. 修改NavigationBar的分根线颜色
  4. linux 内核模块开发,Linux内核模块开发(笔记)
  5. java loadonstartup_java的web配置文件的“load-on-startup0/load-on-startup”一个问题
  6. 在 Nginx 上支持 HTTP/3
  7. vue v-html 动态内容样式无效解决方法
  8. 获取响应里面的cookie的方法
  9. Python 之 函数进阶
  10. Java set重写排序
  11. Linux中断处理“下半部”机制
  12. HDB3码的编码解释(简单粗暴)
  13. vmware Esxi 回收Thin模式磁盘空间
  14. 微软雅黑和consolas混合字体_你用的字体得到授权了吗,小心巨额索赔!
  15. 面试问题——英语38 教育孩子 管理时间 看电视
  16. 抓取腾讯校园招聘的第一页
  17. Youtube字幕下载转SRT字幕
  18. centos7安装dcos
  19. 数仓建设之IP库的匹配
  20. 清晰地记录着这河水改道的历史

热门文章

  1. 我喜欢的几位中国歌手--黄家驹,许巍,刘欢,腾格尔
  2. 我们测量了 6 个 JS 框架的 SSR 性能 - 这是我们发现的
  3. 沃通SSL精灵,让站点HTTPS永只是期
  4. mysql 正则表达式方法_mysql正则表达式
  5. 企业财务制度二--(二)负债类科目 2131 预收账款(转载)
  6. python关键词排名_python实现查询百度关键词排名并截图标注保存
  7. 手机上怎么压缩视频?教你两个手机压缩视频小技巧
  8. FM Bandwidth IQ Rate Sample Rate
  9. Spring Boot 容器启动原理揭秘
  10. 论文解读:《自适应非局部随机游动用于图像超像素分割》