[Asm] 纯文本查看 复制代码 import xlwings as xw #pip install xlwings
#创建应用==》工作簿==》工作表==>工作表==》范围==》保存
#创建应用
app = xw.App(add_book=False)
#1. visible可视化 表示xlwings操作excel的时候是否显示,默认是True
# 2.add_book表示xlwings操作excel的时候是否新增一个Excel文件,默认是true
#app.display_alerts = Flase #关闭提示信息,可以加快运行速度 默认为Ture
#app.screen_updating = Ture #更新显示工作表内容,默认为Ture 关闭可以提示运行速度
工作簿
#wb = app.books.add()
#新建工作簿。
# wb = app.books.open(r'file_path)
#打开现有的工作簿
# wb = app.books.active
#获取当前活动的工作簿
工作表
#sht = wb.sheets.active
#获取当前活动的工作表
#sht = wb.sheets[0]
#按索引获取工作表
# sht = wb.sheets ["sheet1']
#按表名获取工作表
# sht1 = wb.sheets.add()
#新建工作表,默认新建的放在最前面。
# sht1 = wb.sheets.add('新建工作表',after=sht) #新建工作表,放在sht工作表后面。
读取单元格
b3 = sht.range("b3") #获取b3中的值
v = b3.value
#也可以根据行列号读取
b3_value = sht.range(3,2).value#读取一段区间内的值
a1_c4_value = sht.range( 'a1: c4').options(ndim=2).value
#加上 option读取二维的数提
a1_c4_value = sht.range((1,1),(4,3)).options(ndim=2) .value#和上面读取的内容一样。
写入就是把值赋值给读取的单元格就可以了
sht.range(3,2).value = "b3"
设置单元格大小
sht.autofit() #自动调整单元格大小。
注:此方法是在单元格写入内容后,再使用,才有效。
#sht.range(1,4).column_width = 5#设置第4列列宽。(1,4)为第1行第4列的单元格sht.range(1,4).row_height = 20设置第1行行高
wb.sheets["Sheet1"].used_range.last_cell.row #获取最大行号(已使用的单元格的)
wb.sheets["Sheet1"].cells(wb.sheets["Sheet1"].sht.cells.rows.count,1).end("up").row # 获取A列最后一个有内容的单元格同 VBA 的 Cells(Rows.Count, 1).End(xlUp).row
wb.sheets["Sheet1"].cells.Rows.Count #获取最大行号
wb.sheets["Sheet1"].used_range.last_cell.column #获取最大列号(已使用的单元格的)
wb.sheets["Sheet1"].cells(1,wb.sheets["Sheet1"].cells.columns.count).end("left").column #获取第一行最后一个有内容的单元格同 VBA 的 Cells(1, Columns.Count).End(xlToLeft).Select
wb.sheets["Sheet1"].cells.columns.Count #获取最大列号
wb.sheets["Sheet1"].used_range.last_cell #获取最后一个单元格
wb.sheets["Sheet1"].used_range.last_cell.address #获取最后一个单元格的地址
wb.sheets["Sheet1"].api.Rows.Count #调用api返回最大行号,可区分xls和xlsx
wb.sheets["Sheet1"].cells.api.WarpText=Flase #全部单元格取消自动换行
wb.sheets["Sheet1"].cells.autofit(axis=None) # 自动调整行高,列宽 axis指定行或列
wb.sheets["Sheet1"].cells(wb.sheets["Sheet1"].sht.cells.rows.count,1).end("up").select() # 获取A列最后一个有内容的单元格同 VBA 的 Cells(Rows.Count, 1).End(xlUp).Select
wb.sheets["Sheet1"].cells(1,wb.sheets["Sheet1"].cells.columns.count).end("left").select() #获取第一行最后一个有内容的单元格同 VBA 的 Cells(1, Columns.Count).End(xlToLeft).Select
rng =wb.sheets["Sheet1"].range("A10")
# 下面相当于在Excel中按快捷键
rng.end('up').select() # 相当于 ctrl + ↑
rng.end('down').select() # 相当于 ctrl+ ↓
rng.end('left').select() # 相当于 ctrl+ ←
rng.end('right').select() # 相当于 ctrl+ →
sht['B:B'].delete()# 删除列
sht[:, 1:2].delete()
sht['B2'].delete()# 删除单元格 (缺省默认右侧左移'left',下侧上移'up')
sht['C2:D4'].delete('up') # 删除区域
sht[1:4, 2:4].delete('up')
sht['2:2'].insert()# 插入行
sht['B:B'].insert()# 插入列
sht['B2'].insert()# 插入单元格 (缺省默认'down', 可选 'right')
sht['B2:C3'].insert() # 插入区域
# 或者调用api
sht.api.Rows(2).Delete() # 删除行
sht.api.Rows(1).Insert() # 插入行
sht.api.Rows('2:4').Insert()
sht.api.Columns(1).Delete() # 删除列
sht.api.Columns(1).Insert() # 插入列
sht.api.Columns('2:4').Insert()
sht['2:2'].delete()# 删除行
sht[1:2, :].delete() # 区域切片的方法
#保存
wb.save()
#关闭工作簿和应用
wb.close()
app.quit()
|