前言
xlwings能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改 可以和matplotlib以及pandas无缝连接 可以调用Excel文件中VBA写好的程序,也可以让VBA调用用Python写的程序。 开源免费,一直在更新
一、xlwings是什么?
xlwings是一个BSD许可Python库,可以很容易地从Excel调用Python,反之亦然:
- Scripting: 使用接近VBA的语法从Python自动化/与Excel交互。
- Macros: 用干净而强大的Python代码替换VBA宏。
- UDFs: 在Python中编写用户定义函数(UDF)(仅限Windows)。
- REST API: 通过REST API操作Excel工作簿。
完全支持Numpy arrays 和Pandas Series/DataFrames . xlwings-powered workbooks are easy to distribute and work on Windows and Mac.
二、使用步骤
1.引入库
代码如下(示例):
import xlwings as xws
2.写入数据
代码如下(示例):
def xw_wirte(): # 应用方法 创建应用-工作簿-工作表-范围 # add_book属性表示操作excel时是否新增一个excel文件,默认为ture表示添加 # 创建应用 visible操作过程是否显示 app = xws.App(visible=False, add_book=False) # 工作簿 wb = app.books.add() # 工作表(不能使用中文命名) sht = wb.sheets["sheet1"] # 范围(插入数据)options(transpose=True)竖着插入 sht.range("a1").options(transpose=True) .value = ["xlwings", "hello", "world", "beauteful", "friend"] sht.range("b1").value = [[1, 2], [3, 4], [5, 6]] # 关闭excel 保存excel wb.save("demo01.xlsx") wb.close() app.quit()
2.读取数据
代码如下(示例):
def xw_read(): # 创建应用 app = xws.App(visible=False, add_book=False) # 打开demo01数据表读取sheet1的数据 wb = app.books.open("demo01.xlsx") sht = wb.sheets["sheet1"] # 读取A1到C5的数据 print(sht.range("a1:c5").value) # 打开了就要关闭 wb.close() app.quit()
3.体温数据写入示例
import xlwings as xws import random temperature_min = 36.4 temperature_max = 37.0 month = "8月" day_min = 14 day_max = 30 #可以写成具体的电脑路径(默认为py程序的目录生成) file_name = r"demo.xlsx" def sheet1(): app = xws.App(visible=True, add_book=False) wb = app.books.add() sht = wb.sheets["sheet1"] sht.range("a1").value = ["日期", "早", "中", "晚"] lst = [] for it in range(day_min, day_max): temp = month + str(it) + "日" lst.append(temp) sht.range("a2").options(transpose=True).value = lst lst.clear() for it in range(day_min, day_max): temp = random.uniform(temperature_min, temperature_max) lst.append(round(temp, 1)) sht.range("b2").options(transpose=True).value = lst lst.clear() for it in range(day_min, day_max): temp = random.uniform(temperature_min, temperature_max) lst.append(round(temp, 1)) sht.range("c2").options(transpose=True).value = lst lst.clear() for it in range(day_min, day_max): temp = random.uniform(temperature_min, temperature_max) lst.append(round(temp, 1)) sht.range("d2").options(transpose=True).value = lst wb.save(file_name) wb.close() app.quit() def main(): # 写文件 # xw_read() # 读文件 # xw_wirte() sheet1() if __name__ == "__main__": main()
运行截图
这里顺便提一下随机数生成:
1.参生n–m范围内的一个随机数: random.randint(n,m)
2.产生0到1之间的浮点数: random.random()
3.产生n—m之间的浮点数: random.uniform(1.1,5.4)
4.产生从n—m间隔为k的整数: random.randrange(n,m,k)
5.从序列中随机选取一个元素: random.choice([1, 2, 3, 4, 5, 6, 7, 8])
6.在一些特殊的情况下可能对序列进行一次打乱操作: random.shuffle([1,3,5,6,7])
总结
提示:以上就是今天学习的内容,本文仅仅简单介绍了xlwings的使用,而xlwings提供了大量能使我们快速便捷地处理数据的函数和方法。具体可以去xlwings官网了解:点击直达
python操作excel的库有非常多,使用都非常简单,常见的有xlwings、xlrd、xlwt、openpyxl、pyxl具体的使用方法以后可能会有讲解,请持续关注。