python-读写Excel:xlwings库操作

几种操作Excel的python库对比

安装:pip install xlwings

目录

APP实例化对象

工作薄对象

创建工作薄

打开工作薄

工作薄属性

工作表对象

新增工作表

复制表

获取工作表对象

工作表属性

删除和清除表数据及表格式

工作表行高列宽(自动调整)

单元格对象

获取单元格对象

1、字母表示法

2、坐标法

3、切片法

单元格属性

单元格插入内容

name:给单元格命名

value:修改或写入文本内容

add_hyperlink:添加超链接

pictures.add:给单元格添加图片

api.AddComment:添加批注

formula:添加或修改函数表达式

添加统计图表

单元格数据类型设置

  ​编辑

单元格样式设置

autofit:设置单元格自适应宽高

Font:字体样式

Borders:边框样式

api.HorizontalAlignment:单元格对齐方式

合并和取消合并单元格

单元格颜色设置

保存退出操作

将Excel转为PDF文件

保存

关闭和退出


APP实例化对象

参数:visible表示实例化的对象是否可见(值为True时会调用系统默认设置打开Excel文件的程序,如打开wps),add_book表示是否在这个工作簿中默认新增工作表。

import xlwings as xw
app = xw.App(visible=False, add_book=False)  
app.display_alerts = False  # 关闭提示信息
app.screen_updating = False  # 关闭显示更新

工作薄对象

创建工作薄

workbook = app.books.add()   # 创建新的工作簿

打开工作薄

workbook = app.books.open(r'C:\Users\Administrator\Desktop\ceshi.xls')  # 打开指定的工作簿

工作薄属性

print(workbook.name)  # 返回工作簿名字

print(workbook.sheets)  # 返回工作薄中所有sheet表的列表,列表内容为所有工作表对象
for sh_name in workbook.sheets:
    print(sh_name.name)

print(workbook.app)  # 返回工作簿所在的App对象[Excel程序]

工作表对象

新增工作表

创建新的sheet工作表对象,可选before或者after参数,指定插入表格的位置在指定表之前或之后。

workbook.sheets.add('工资表', before='Sheet3') 

复制表

参数:name(可选,str)副本的名字;before(可选,sheet对象)复制到哪个工作表之前;after(可选,sheet对象)复制到哪个工作表之后

sheet1.copy()
sheet1.copy(name='复制表重名命测试', after=sheet1)
sheet1.copy(name='复制表重名命测试2', before=sheet1)

获取工作表对象

有三种不同的方法可以获取表对象:表名、表索引、表序号

sheet1 = workbook.sheets['工资']  # 通过表名获取指定工作表对象
sheet1 = workbook.sheets[0]  # 通过表索引获取指定工作表对象
sheet1 = workbook.sheets(1)  # 通过表需要获取指定工作表对象,注意序号和索引的区别:()根据序号选择,从1开始;[]根据索引选择,从0开始。

工作表属性

有效行used_range.rows和有效列used_range.columns是比较实用的方法,可以方便获取有效数据进行遍历 

print(str(sheet1.name))  # 获取表名
print(sheet1.index)  # 获取当前表的序号(索引加1)
print(sheet1.used_range.rows, sheet1.used_range.columns)  # 获取有效单元格行和列对象


# 获取有效行和有效列
nrow = sheet1.api.UsedRange.Rows.count  # 有效行数,同sheet1.used_range.rows.count,也可通过长度计算len(sheet1.used_range.rows)
ncol = sheet1.api.UsedRange.Columns.count  # 有效列数,同sheet1.used_range.columns.count,,也可通过长度计算len(sheet1.used_range.columns)
print(nrow, ncol)
# 最大行,最大列:结果同有效行和列
print(sheet1.used_range.last_cell.row)
print(sheet1.used_range.last_cell.column)


for i in sheet1.used_range.columns:  # 可通过有效行或列遍历有效数据
    print(i.value)

删除和清除表数据及表格式

sheet1.clear()  # 清除工作表所有内容和格式
sheet1.clear_contents()  # 清除工作表的所有内容但是保留原有格式
sheet1.clear_formats()   # 删除样式但保留文本
sheet1.delete()  # 删除工作表

工作表行高列宽(自动调整)

sheet1.autofit('c')  # 自动调整列宽
sheet1.autofit('r')  # 自动调整行高
sheet1.autofit()  # 自动调整行高列宽,如上可指定axis参数只设置行或列,无参数时同时设置行和列

单元格对象

获取单元格对象

三种不同的获取单元格对象的方法

1、字母表示法
cell = sheet1.range('F1')  # 获取单个单元格对象
more_cells = sheet1.range('B2:F1')  # 获取单元格区域
2、坐标法

一行一列为起始坐标1,1

cell = sheet1.range(2, 3)  # 获取单个单元格对象,第2行3列
more_cell
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值