Python Xlwings

Python Xlwings

对App进行操作

app=xw.App()
wb=app.books.open(r'C:\Users\Administrator\Desktop\1test.xlsm')
# 1.打开Excel
app=xw.App(visible=True,add_book=False)
# visible是否可见,False表示在后台运行,add_book是否新增一张Excel操作,在新增wb上运行
# 2.对excel操作时候屏幕是否更新
app.screen_updating=True   #默认True
# 3.返回所有book对象集合
print(app.books)    #只返回通过xw打开的workbook,手动打开的不返回
# 4.退出excel
app.kill()  #终止进程
app.quit()  #退出excel程序

对workbook进行操作

#对workbook进行操作
#1.打开workbook
#1.1 添加一个新的空白wb
xw.Book()
app=xw.App()
app.books.add()
#1.2 打开指定地址的excel
xw.Book(r'C:\Users\Administrator\Desktop\1.xlsx')
app=xw.App()
app.books.open(r'C:\Users\Administrator\Desktop\1.xlsx')
#2.python调用vba
wb=xw.Book(r'C:\Users\Administrator\Desktop\1test.xlsm')
wb.macro('test')()  #调用
#3.在vba中调用python
#caller()函数是python与vba交互的关键函数
#caller()当vba从excel中调用python函数时,引用这个book,还会将其打包成excel中的函数
#栗子
#将栗子保存为test.py,与excel在同一个目录下
import xlwings as xw
#需求A1赋值为helloworld
def insert_a1():
    wb=xw.Book.caller()
    wb.sheets[0].range('a1').value='Helloworld'
#在vba中写入
sub test()
runpython ("import test; test.insert_a1()")
end sub
#4.关闭wk
wb.save(path=None)    #可以指定path为保存的位置
wb.close()
#5.查看路径+文件名称
app=xw.App()
wb=app.books.open(r'C:\Users\Administrator\Desktop\1.xlsx')
print(wb.fullname)
#6.set_mock_caller直接在python IDE内运行要与vba交互的py文件
# import xlwings as xw
# def test():
#     wb=xw.Book.caller()
#     wb.sheets[0].range('a1').value='Hello xlwings'
#
# if __name__ == '__main__':
#     xw.Book(r'C:\Users\Administrator\Desktop\1test.xlsm').set_mock_caller()
#     test()

对worksheet进行操作

# app=xw.App()
# wb=app.books.open(r'C:\Users\Administrator\Desktop\1test.xlsm')
# sht=wb.sheets[0]
#1.sheets返回所有的工作表
# print(wb.sheets)
#2.active返回正在被操作的sht,
# sht=wb.sheets[0]
# print(sht.activate)
#3.add(name=None,before=None,after=None)添加sht
# wb.sheets.add(name='hello_xlwings')
#4.autofit(axis=None)自动调整行和列
#栗子
# import xlwings as xw
# wb=xw.Book()
# wb.sheets[0].range('a1').value='hello xlwings'  #对第一张表a1赋值
# wb.sheets[0].autofit('c')   #columns=c
# wb.sheets[0].autofit('r')   #rows=r
# wb.sheets[0].autofit()
#5.book sht所属的workbook
# sht=wb.sheets[0]
# print(sht.book) #属于workbook<Book [1test.xlsm]>
#6.cells返回一个range对象,表示sheet上的所有单元格
# print(sht.cells)
# print(sht.cells.shape)
#7.charts返回sheet中所有图标的集合
# print(sht.charts)
#8.clear()
# print(sht.clear())  #清除内容颜色格式...
#9.clear_contents()
# print(sht.clear_contents()) #清除内容
#10.delete() 删除sheet
# sht.delete()
#11.pictures 返回所有pictures对象的集合
# print(sht.pictures)
#12.index 返回工作表的索引
# print(sht.index)    #第一个为1
#13.name,sheet name的操作
# print(sht.name) #获得sht的名字
# sht.name='xlwingstest'  #修改sht的名字
# print(sht.name)

对range的操作

# app=xw.App()
# wb=app.books.open(r'C:\Users\Administrator\Desktop\1test.xlsm')
# sht=wb.sheets[0]
#1.add_hyperlink(address,text_to_display=None,screen_tip=None)添加超链接
# sht.range('a1').add_hyperlink(address='www.baidu.com',text_to_display='百度',screen_tip='我是百度哦')
#2.clear()删除range里面的内容和格式
#3.clear_contents()删除内容
#4.color获取单元格的背景颜色
# print(sht.range('a1').color)    #没有颜色的时候返回None
# sht.range('a1').color=(100,100,100)   #设置颜色
# print(sht.range('a1').color)
#5.column返回range的列
#6.column_width获取单元格的列宽
# print(sht.range('a1').column_width)  #获取宽度
# sht.range('a1').column_width=33 #设置宽度
# print(sht.range('a1').column_width)
#7.columns返回RangeColumns对象,表示指定范围内的列
# print(sht.range('a1:c3').columns)
#8.count返回单元格数量
#9.end(direction),返回一个range对象,类似Ctrl+Up(down,left,right)
# print(sht.range('a1:a65536').end('down').row+1)   #返回最后有值一行,需要+1
#10.formula 获取设置单元格的公式
# sht.range('a1').formula='=b1+c1'    #设置
# # print(sht.range('a1').formula)  #获取
#11.formula_array 获取设置单元格的数组公式
# sht.range('a1').formula_array='=b1+c1'    #设置
# print(sht.range('a1').formula_array)  #获取的值并没有{}包裹
#12.get_address(row_absolute=True,column_absolute=True,include_sheetname=False,external=False)返回地址
#13.height返回高度 row_height
# print(sht.range('a1').height) #获取行高
# sht.range('a1').row_height=33   #设置行高
# print(sht.range('a1').row_height)   #获取行高
#14.hyperlink返回地址
#15.last_cell返回指定range右下角的单元格
#16.left返回从第一列到range第一列的距离
#17.name设置获取range的名称
#18.number_format获取设置range的内容格式
#19.offset(row_offset=0,column_offset=0)
# rng=sht.range('a1:c3')
# rng=rng.offset(row_offset=2,column_offset=2)
# print(rng)  #返回偏移后的array c3:e5
#20.options(convert=None,)...
#21.raw_value获取设置传递的值
#22.row返回行
#23.row_height 在上方height的时候已经举栗子
#24.rows返回rangerows
#25.select()
#26.shape返回几行几列
#27.size返回range中元素数量
# print(sht.range('a1:d100').size)    #有400个cell
#28.top返回第一行到range第一行的距离
#29.value获取设置range的值
# sht.range('a1').value='123'
# print(sht.range('a1').value)
#30.width 返回range宽度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值