python自动化操作excel-xlwings
程序员文章站
2024-02-23 19:43:40
...
新建
import xlwings as xw
app = xw.App(visible=True, add_book=False)
wb = app.books.add()
# wb = workbook,下面则对wb的sheet1的A1单元格赋值
wb.sheets['sheet1'].range('A1').value = "生而为人"
wb.save(r'D:/xltest.xls')
wb.close()
app.quit()
print("完成")
打开
import xlwings as xw
# 打开Excel程序,默认设置:程序可见,只打开不新建工作薄,屏幕更新关闭
app = xw.App(visible=True, add_book=False)
app.display_alerts = False
app.screen_updating = False
# 文件位置filepath,打开test文档,然后保存,关闭,结束程序
filepath = r'D:/test_xlwings.xls'
wb = app.books.open(filepath)
wb.save()
wb.close()
time.sleep(5)
app.quit()
print("完成")
修改
import xlwings as xw
app = xw.App(visible=True, add_book=False)
wb = app.books.open(r'D:/xltest.xls')
wb.sheets['sheet1'].range('A2').value = "我很抱歉"
wb.save()
wb.close()
app.quit()
引用
import xlwings as xw
# 按名字引用工作薄
# wb = xw.books['test_xlwings.xls']
# 引用活动的工作簿
# wb = xw.books.active
# 引用工作簿中的sheet fun1
# sht = xw.books['名字'].sheets['sheet名字']
# 方法2
# wb = xw.books['mingzi']
# sht = wb.sheets['mingzi']
# 引用a1单元格
app = xw.App(visible=True, add_book=False)
wb = app.books.open(r'D:/xltest.xls')
sht = wb.sheets['sheet1']
sht.range('A2').value = "hello"
# 行存储:将列表[1,2,3]储存在A1:C1中
sht.range("A1").value = [1,2,3]
# 列存储:将列表[1,2,3]储存在A1:A3中
sht.range('A1').options(transpose=True).value=[1,2,3]
# 将2x2表格,即二维数组,储存在A1:B2中,如第一行1,2,第二行3,4
sht.range('A1').options(expand = 'table').value = [[1,2],[3,4]]
#sht.range('a1').value = [1,2,3,4]等同于
sht.range('a1:d1').value = [1,2,3,4]
wb.save()
wb.close()
app.quit()
读取单个值
a = sht.range('A1').value
print(a)
book 常用api
import xlwings as xw
wb = xw.Book('test_xlwings.xls')
# 引用Excel程序中,当前的工作簿
wb = xw.books.active
# 返回工作簿的绝对路径
x= wb.fullname
print(x)
#返回工作簿的名称
x=wb.name
print(x)
# 保存工作簿,默认路径为工作簿原路径,若未保存则为脚本所在的路径
x=wb.save(path=None)
# 关闭工作簿
x=wb.close()
sheet常用api
# 引用某指定sheet
sht=xw.books['工作簿名称'].sheets['sheet的名称']
# **sheet为活动工作表
sht.activate()
# 清除sheet的内容和格式
sht.clear()
# 清除sheet的内容
sht.contents()
# 获取sheet的名称
sht.name
# 删除sheet
sht.delete
sheet api 场景应用
import xlwings as xw
wb = xw.Book('test_xlwings.xls')
# 引用指定sheet
sht = wb.sheets['sheet1']
a = sht.range('A1').value
print(a)
# **sheet为活动工作表
sht.activate()
# 清除sheet的内容和格式
# sht.clear()
# 清除sheet的内容
# sht.contents()
b = sht.name
print(b)
rng = sht.range('A1').expand('down')
rng.value = ['a1', 'a2', 'a3', 'a4', 'a5']
rng = sht.range('A1').expand('table')
rng.value = [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']]
wb.save()
# 删除sheet
# sht.delete
range常用api
# 获得列宽
rng.column_width
# 返回range的总宽度
rng.width
# 获得range的超链接
rng.hyperlink
# 获得range中右下角最后一个单元格
rng.last_cell
# range平移
rng.offset(row_offset=0,column_offset=0)
#range进行resize改变range的大小
rng.resize(row_size=None,column_size=None)
# range的第一行行标
rng.row
# 所有range的大小自适应
rng.autofit()
# 行的高度,所有行一样高返回行高,不一样返回None
rng.row_height
# 返回range的总高度
rng.height
# 返回range的行数和列数
rng.shape
# 返回range所在的sheet
rng.sheet
#返回range的所有行
rng.rows
# range的第一行
rng.rows[0]
# range的总行数
rng.rows.count
# 返回range的所有列
rng.columns
# 返回range的第一列
rng.columns[0]
# 返回range的列数
rng.columns.count
# 引用当前活动工作表的单元格
rng=xw.Range('A1')
# 加入超链接
# rng.add_hyperlink(r'www.baidu.com','百度',‘提示:点击即链接到百度')
# 取得当前range的地址
rng.address
rng.get_address()
# 清除range的内容
rng.clear_contents()
# 清除格式和内容
rng.clear()
# 取得range的背景色,以元组形式返回RGB值
rng.color
# 设置range的颜色
rng.color=(255,255,255)
# 清除range的背景色
rng.color=None
# 获得range的第一列列标
rng.column
# 返回range中单元格的数据
rng.count
# 返回current_region
rng.current_region
# 返回ctrl + 方向
rng.end('down')
# 获取公式或者输入公式
rng.formula='=SUM(B1:B5)'
# 数组公式
rng.formula_array
# 获得单元格的绝对地址
rng.get_address(row_absolute=True, column_absolute=True,include_sheetname=False, external=False)
# 所有列宽度自适应
rng.columns.autofit()
# 所有行宽度自适应
rng.rows.autofit()
book工作簿合集的api
# 新建工作簿
xw.books.add()
# 引用当前活动工作簿
xw.books.active
sheet 工作合集的api
# 新建工作表
xw.sheets.add(name=None,before=None,after=None)
# 引用当前活动sheet
xw.sheets.active