本文主要是介绍python使用xlwings操作excel-1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
xlwingsApp属性和方法:
xlwings调用vba方法
安装xlwings库:pip install xlwings
xlwingsApp属性和方法:
xlwings.App():代表正在运行的excel软件本身,因此可以通过App找到当前Excel进程中的一切元素!
App.visible()属性:设置为True或False,可以空值该Excel窗口是否可见。
excel.visible = False
excel.visible = True
App.quit()方法:执行后可以结束该Excel程序。
excel。quit()
App.books属性:一个容器性质的对象,容纳并管理该Excel中已经打开的所有工作簿。
App.books.add()方法:创建新工作簿
excel.books.add()
注意:使用add创建新工作簿后屏幕上是有两个工作簿窗口,都属于同一个Excel软件进程(即excel)。或者说,一个Excel进程可以打开多个工作簿。
App.books.open(文件路径):根据指定的路径,打开Excel工作簿文件。(返回一个Book对象,代表刚刚打开的工作簿)
wb=excel.books.open('d:/demo/重要数据.xlsx')
Book类:代表一个工作簿
Book.sheets属性:一个容器性质的对象,容纳并管理该工作簿中的所有工作表(worksheet)。
Book.sheets.add()方法:在Book代表的工作簿中新建一个工作表。
ws = wb.sheets.add() #ws代表刚新建的工作表
Book.sheets[0]:本工作簿中左起第i+1张工作表。(显示在最左边的即第1张,向右依次为第2张、第三张..)
Book.sheets['abc']:本工作簿中名为“abc”的工作表。
ws = wb.sheets[0]
#ws = wb.sheets['abc']
Book.save(保存路径):按指定路径和文件名保存该工作簿,相当于‘另存为’;如果不指定保存路径参数,则按原路径和文件名保存工作簿,相当于‘保存’
wb.save('d:/也是重要数据.xlsx')
Book.close():关闭当前工作簿
wb.close()
Sheet类:代表一个工作表(worksheet)。
Sheet.name属性:代表该工作表的名字(标题)
ws.name='我是工资表'
Sheet.clear方法:清除该工作表内一切内容与格式
ws.clear()
Range类:代表一个单元格区域(比如A1、C2:D5...),用于控制该区域的内容、格式等。
Sheet.range(单元格地址)方法:返回一个Range对象,代表指定地址的单元格区域。
r = ws.range('A1')
r1 = ws.range('A1:B3') #执行后,r就是一个代表w工作表A1:B3区域的Range对象。
Range.value属性:代表该单元格区域的内容(读/写)。不能把集合赋值给range.value
写入单元格
ws.range('B1').value = '你好'
#读取(读取单元格范围返回列表)
print(ws.range('B1:B2').value)
一串数值写入单元格
x =[27,'hello',32,11,22]
r = ws.range('B2') #B2为起始点整个写入一串单元格数值
r.value = x
二维列表写入单元格
r = ws.range('B2')
r.value = [[1,2,3],[4,5,6],[7,8,9]]
字典写入单元格
r.value = {'杨幂':35,'杨洋':30,'杨紫':29}
通过xlwings操作Excel的过程就是逐层创建对象。使用xlwings读写单元格的基本步骤为:
- 使用xlwings.App() 创建App对象,代表Excel进程;
- 使用app对象books属性的open或add方法,打开或新建Excel工作簿,并得到代表该工作簿的Book对象;
- 使用Book对象Sheets属性,得到代表某工作表的Sheet对象;
- 使用Sheet对象的range方法,得到代表指定单元格区域的Range对象;
- 使用Range对象的value属性,读写指定单元格区域的内容。
- 根据需要,使用Book对象的save方法和close方法保存或关闭工作簿。
- 使用App对象的quit方法退出Excel程序。
import xlwings as xw app = xw.App() wb = app.books.open('d:/demo/重要数据.xlsx') ws = wb.sheets[0] r = ws.range('A1') print(r.value) wb.save() wb.close() app.quit()''' 总结:首先通过APP定位到整个Excel软件进程,接下来可以通过app 打开或新建具体的工作簿,然后利用工作簿的sheet可以得到具体的某一 张工作表,再通过这个工作表的range定位到需要读写的哪一个或多个单 元格,最后通过range.value读取单元格数据了。'''
案例:通过xlwings和tushare库获取最新股票数据
友情提示:xlwings其实提供了一个方法,可以直接将数据存入excel。不过该方法要求事先安装openpyxl模块。
xlwings调用vba方法
App.macro(宏名)方法:在打开的工作簿中找到指定名称的VBA宏,然后将其作为一个Macro对象,返回。只要调用该Macro对象的run方法,即可让Excel执行此VBA程序。(实际操作可以省略run方法)
import xlwings as xw
app = xw.App()
wb = app.books.open('d:/demo/vba示例.xlsm')
m = app.macro('SayHello')
m.run()
app.quit()
来自杨洋老师课堂笔记
这篇关于python使用xlwings操作excel-1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!