xlwings的基本操作
首先先导入需要的模块。
import pandas as pd
import xlwings as xw
import numpy as np
接着新建一个test.xlsx
excel文件。
# visible-是否打开相应excel文件,即是否可视化当前工作簿;
# add_book=True,此时立即创建一个有sheet表的工作簿
# add_book=False,此时立即创建一个没有sheet表的工作簿
app = xw.App(visible=True, add_book=False)
wb = app.books.add()
此时就能获取wb
的sheet表,进行操作了。
sht = wb.sheets[0]
# a1到d1单元格插入值
sht.range("a1:d1").value = ["序号", "姓名", "年龄", "性别"]
可以实时看到excel文件的结果:
接下来编辑完就能保存并关闭。
# 保存到当前文件夹下
wb.save("./test.xlsx")
# 关闭此工作簿
wb.close()
此时关闭工作簿之后,因为app还在,所以excel整体界面是这样子的。
接下来再关闭app就行。
app.quit()
打开工作簿有两种方式:
# 方式一:推荐,更灵活
app = xw.App(visible=True, add_book=False)
wb = app.books.open("test.xlsx")
# 方式二
wb = xw.Book("test.xlsx")
接下来获取到sheet,就可以对表中的单元格编辑。
sht = wb.sheets[0]
# 插入数据
sht.range("a2").value = [[1, "小明", 18, "男"], [2, "小红", 17, "女"]]
# 查看b2数据,b2='小明'
b2 = sht.range("b2").value
# 清除单元格a2到d3数据
sht.range("a2:d3").clear()
进行完上述操作,最终表格跟刚打开时的内容一样。
以上就是最基础的操作。当然也可以通过xlwings更改单元格颜色、更改行高列宽、插入公式。
# 将b1单元格颜色改为淡蓝色
sht.range("b1").color = (135,206,250)
# 获取b1单元格行高和列宽,并改为18, 25
width = sht.range("b1").column_width
height = sht.range("b1").row_height
sht.range("b1").column_width = 25
sht.range("b1").row_height = 18
# 插入公式,在a2中插入当前日期
sht.range("a2").value = "=CONCATENATE(b1, c1)"
# 或者
sht.range("a3").formula = "=CONCATENATE(b1, c1)"
# 查看a3单元格的公式,如果是sht.range("a3").value返回值
sht.range("a3").formula_array
这些就是xlwings的常见操作了,之后还会放上和VBA交互使用的各类操作。