系列文章目录
python操作excel示例(xlwings库)
前言
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具体的使用方法以后可能会有讲解,请持续关注。