python操作excel示例(xlwings库)有实战例子(生成温度表)

简介: python操作excel示例(xlwings库)有实战例子(生成温度表)

前言

xlwings能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改 可以和matplotlib以及pandas无缝连接 可以调用Excel文件中VBA写好的程序,也可以让VBA调用用Python写的程序。 开源免费,一直在更新


一、xlwings是什么?

xlwings是一个BSD许可Python库,可以很容易地从Excel调用Python,反之亦然:

  1. Scripting: 使用接近VBA的语法从Python自动化/与Excel交互。
  2. Macros: 用干净而强大的Python代码替换VBA宏。
  3. UDFs: 在Python中编写用户定义函数(UDF)(仅限Windows)。
  4. 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具体的使用方法以后可能会有讲解,请持续关注。


相关文章
|
1天前
|
机器学习/深度学习 数据采集 算法
数据稀缺条件下的时间序列微分:符号回归(Symbolic Regression)方法介绍与Python示例
有多种方法可以处理时间序列数据中的噪声。本文将介绍一种在我们的研究项目中表现良好的方法,特别适用于时间序列概况中数据点较少的情况。
10 1
数据稀缺条件下的时间序列微分:符号回归(Symbolic Regression)方法介绍与Python示例
|
1天前
|
数据采集 机器学习/深度学习 人工智能
Python编程入门:从零基础到实战应用
【9月更文挑战第15天】本文将引导读者从零开始学习Python编程,通过简单易懂的语言和实例,帮助初学者掌握Python的基本语法和常用库,最终实现一个简单的实战项目。文章结构清晰,分为基础知识、进阶技巧和实战应用三个部分,逐步深入,让读者在学习过程中不断积累经验,提高编程能力。
|
6天前
|
存储 人工智能 数据挖掘
Python编程入门:从基础到实战
【9月更文挑战第10天】本文将引导你进入Python编程的世界,从基本语法到实际项目应用,逐步深入。我们将通过简单的例子和代码片段,帮助你理解并掌握Python编程的精髓。无论你是编程新手还是有一定经验的开发者,都能在这篇文章中找到有价值的信息。让我们一起开始Python编程之旅吧!
|
7天前
|
数据采集 开发者 Python
探索Python中的异步编程:从基础到实战
【9月更文挑战第9天】本文将带你进入Python异步编程的世界,从理解其核心概念开始,逐步深入到实际应用。我们将一起构建一个小型的异步Web爬虫,通过实践学习如何在不阻塞主线程的情况下并发处理任务,优化程序性能。文章不仅包含理论知识,还提供代码示例,让读者能够动手实践,深刻理解异步编程的力量。
29 12
|
4天前
|
数据采集 网络协议 API
HTTP协议大揭秘!Python requests库实战,让网络请求变得简单高效
【9月更文挑战第13天】在数字化时代,互联网成为信息传输的核心平台,HTTP协议作为基石,定义了客户端与服务器间的数据传输规则。直接处理HTTP请求复杂繁琐,但Python的`requests`库提供了一个简洁强大的接口,简化了这一过程。HTTP协议采用请求与响应模式,无状态且结构化设计,使其能灵活处理各种数据交换。
28 8
|
5天前
|
存储 安全 数据安全/隐私保护
安全升级!Python AES加密实战,为你的代码加上一层神秘保护罩
【9月更文挑战第12天】在软件开发中,数据安全至关重要。本文将深入探讨如何使用Python中的AES加密技术保护代码免受非法访问和篡改。AES(高级加密标准)因其高效性和灵活性,已成为全球最广泛使用的对称加密算法之一。通过实战演练,我们将展示如何利用pycryptodome库实现AES加密,包括生成密钥、初始化向量(IV)、加密和解密文本数据等步骤。此外,还将介绍密钥管理和IV随机性等安全注意事项。通过本文的学习,你将掌握使用AES加密保护敏感数据的方法,为代码增添坚实的安全屏障。
20 8
|
4天前
|
监控 安全 Java
文件操作不再难!Python系统编程实战,带你轻松驾驭文件系统与I/O
【9月更文挑战第13天】在Python系统编程中,文件操作与I/O管理至关重要。本文通过五个实战案例分享最佳实践:高效遍历文件系统、优雅处理文件读写、利用缓冲机制优化性能、并行处理文件加速任务以及异常处理确保程序稳健。使用pathlib、上下文管理器及concurrent.futures等工具,助你轻松掌握Python文件系统与I/O操作,提升编程效率和项目质量。 示例代码展示了如何使用pathlib遍历目录、with语句安全读写文件、控制缓冲区大小、并行处理多个文件以及捕获异常保证程序稳定运行。通过这些技巧,你将能够在实际项目中更加高效地管理和操作文件。
20 6
|
5天前
|
大数据 数据挖掘 数据处理
Python数据流转的秘密武器:文件系统操作与高效I/O管理实战
【9月更文挑战第12天】在大数据时代,Python凭借其丰富的库和简洁的语法,成为数据处理的首选工具。本文通过实战案例,介绍如何利用Python的`pathlib`模块遍历复杂文件系统,以及通过高效I/O管理(如使用`with`语句和多线程)提升文本文件处理性能。通过这些技巧,你可以轻松从大量分散的文本文件中提取关键信息并整合成新的数据集,从而更好地支持数据分析工作。掌握这些技术,将助你在数据处理领域游刃有余。
15 4
|
7天前
|
安全 数据安全/隐私保护 Python
Python系统编程实战:文件系统操作与I/O管理,让你的代码更优雅
【9月更文挑战第10天】Python不仅在数据分析和Web开发中表现出色,在系统编程领域也展现出独特魅力。本文将带你深入探讨Python中的文件系统操作与I/O管理,涵盖os、shutil和pathlib等模块的基础使用方法,并通过示例代码展示如何优雅地实现这些功能。通过掌握缓冲、异步I/O等高级特性,你将能够编写更高效、安全且易于维护的Python代码。示例包括使用pathlib遍历目录、设置缓冲区提升文件写入性能以及使用aiofiles实现异步文件操作。掌握这些技能,让你在Python系统编程中更加得心应手。
13 2
|
10天前
|
数据采集 机器学习/深度学习 存储
Python编程入门:从基础到实战
【9月更文挑战第6天】本文将引导你走进Python的世界,从零基础开始,逐步掌握Python的基础语法和常用库。我们将通过实例讲解,让你在轻松愉快的氛围中学习Python编程。最后,我们还将分享一些实用的技巧和资源,帮助你在学习过程中不断进步。让我们一起开启Python编程之旅吧!
27 4