python3操作excel学习笔记

#打开已有工作簿(支持绝对路径和相对路径)

import xlwings as xw #操作excel可以用xlwings模块
app = xw.App(visible=True,add_book=False)
#visible是否可见,add_book是否新建工作簿

wb = app.books.open(r’E:\Python\hby\test.xlsm’)
#强烈建议使用Python的r前缀,就不用考虑转义的问题了

#引用单元格
rng1 =wb.sheets[‘vba’].range(‘a1’)
#引用区域
rng2 = wb.sheets[‘vba’].range(‘a1:a5’)
rng3 = wb.sheets[‘bbb’].range(f’a{area_x}:a{area_y}’).value (area_x和area_y为变量)

#.clear()用来清除选定单元格的值(清除a2到d500区域范围的值)
wb.sheets[‘vba’].range(‘a2:d500’).clear()

#在单元格写入值abc
wb.sheets[‘vba’].range(a,4).value = “abc”

#检索vbasheet的B列有值的单元格一共有几行
rng = wb.sheets[‘vba’].range(‘b1’).expand(‘table’)
sku_rows = rng.rows.count

#如果要检索第几行为空,则再加下面一句(有值的下一行即为空行)
sku_rows = sku_rows +1

#将excel的A列有值的单元格内容,导入到一个名叫skulist的列表里面
skulist = [] #定义一个列表名为skulist

#检索下A列一共有多少行是有值的
skulist_rows = wb.sheets[‘vba’].range(‘a1’).expand(‘table’).rows.count

#将A列有值的单元格内容保存到名为skulist的列表里面。
skulist = wb.sheets[‘vba’].range(f’a1:a{skulist_rows}’).value

#区域的粘贴默认的是按行写入,可以用.options(transpose=True)来粘贴,更符合我们平时操作excel的习惯,这个就可以把一列数据,粘贴成一列了,而不是一行(area_x和area_y为赋过值的,用来指定一个区域)
wb.sheets[‘bbb’].range(f’a{area_x}:a{area_y}’).options(transpose=True).value = order_date

#保存excel(如果是和打开的文件同一路径同一文件名则相当于Ctrl+s的保存。如果不同则为另存为。。。)
wb.save(r’E:\Python\hby\test.xlsm’)

#退出Excel
app.quit()

你可能感兴趣的:(学习笔记,python3,xlwings,excel,python3操作excel)