python的第三方库xlwings的使用说明
xlwings是 Python 的一个第三方库并且开源免费。它能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改。它还可以和matplotlib、numpy以及pandas无缝连接,支持读写numpy、pandas的数据类型,将matplotlib可视化图表导入到excel中。最重要的是xlwings可以调用Excel文件中VBA写好的程序,也可以让VBA调用用Python写的程序。
安装
pip install xlwings
导入
import xlwings as xw
使用
首先了解excel大致操作,首先打开excel,打开excel中选择其中的一个sheet,在sheet中操作单元格。
表相关
新建xlwings app
app = xw.App(visible=False,add_book=False) # 在打开app时,后台打开
打开excel表格
book = app.books.open("./test.xlsx")
保存表格
book.save()
实例化sheet表对象
sheet = book.sheets["sheet1"]
查看excel绝对路径
book.fullname
查看sheet表的名字
sheet.name
单元格相关
数据相关
在单元格中写入数据
sheet.range('A1').value = "xlwings"
读取单元格内容
sheet.range('A1').value
清除单元格内容和格式
sheet.range('A1').clear()
获取单元格的列标
sheet.range('A1').column
获取单元格的行标
sheet.range('A1').row
在单元格中写入批量数据,只需要指定其单元格位置即可
sheet.range('A2').value = [['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]]
读取表中批量数据
sheet.range('A1').expand().value
sheet['A1'].expand().value
直接与电脑里的活动表格进行交互
# 写入
xw.Range("E1").value = "xlwings"
# 读取
xw.Range("E1").value
格式相关
获取单元格的行高
sheet.range('A1').row_height
sheet['A1'].row_height
获取单元格的列宽
sheet.range('A1').column_width
sheet['A1'].column_width
整一列的列宽自适应
sheet.range('A1').columns.autofit()
sheet['A1'].columns.autofit()
整一行的行高自适应
sheet.range('A1').rows.autofit()
sheet['A1'].rows.autofit()
给单元格上背景色,传入RGB值
sheet.range('A1').color = (34,139,34)
sheet['A1'].color = (34,139,34)
获取单元格颜色,RGB值
sheet.range('A1').color
sheet['A1'].color
清除单元格颜色
sheet.range('A1').color = None
sheet['A1'].color = None
公式相关
输入公式,相应单元格会出现计算结果
sheet.range('A1').formula = '=SUM(B6:B7)'
sheet['A1'].formula = '=SUM(B6:B7)'
获取单元格公式
sheet.range('A1').formula_array
sheet['A1'].formula_array
与pandas互动
xlwings可以和pandas一起操作,使用options
对插入的dataframe进行设置
sheet['A1'].options(pd.DataFrame, index=False, header=False, expand='table').value = df
上面的配置会把索引和表头关闭,在对应单元格传入dataframe时,会以改单元格为始输入数据表。就和在excel中复制数据表,然后在另外一个表点击某个单元格后粘贴的操作一致。
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
soap的会员制餐厅!
喜欢就支持一下吧