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具体的使用方法以后可能会有讲解,请持续关注。


相关文章
|
2月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
312 7
|
2月前
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
2月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
309 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
2月前
|
存储 分布式计算 测试技术
Python学习之旅:从基础到实战第三章
总体来说,第三章是Python学习路程中的一个重要里程碑,它不仅加深了对基础概念的理解,还引入了更多高级特性,为后续的深入学习和实际应用打下坚实的基础。通过这一章的学习,读者应该能够更好地理解Python编程的核心概念,并准备好应对更复杂的编程挑战。
109 12
|
2月前
|
人工智能 Java Linux
Python高效实现Excel转PDF:无Office依赖的轻量化方案
本文介绍无Office依赖的Python方案,利用Spire.XLS、python-office、Aspose.Cells等库实现Excel与PDF高效互转。支持跨平台部署、批量处理、格式精准控制,适用于服务器环境及自动化办公场景,提升转换效率与系统稳定性。
326 7
|
2月前
|
存储 数据采集 监控
Python文件操作全攻略:从基础到高级实战
本文系统讲解Python文件操作核心技巧,涵盖基础读写、指针控制、异常处理及大文件分块处理等实战场景。结合日志分析、CSV清洗等案例,助你高效掌握文本与二进制文件处理,提升程序健壮性与开发效率。(238字)
320 1
|
2月前
|
存储 Java 调度
Python定时任务实战:APScheduler从入门到精通
APScheduler是Python强大的定时任务框架,通过触发器、执行器、任务存储和调度器四大组件,灵活实现各类周期性任务。支持内存、数据库、Redis等持久化存储,适用于Web集成、数据抓取、邮件发送等场景,解决传统sleep循环的诸多缺陷,助力构建稳定可靠的自动化系统。(238字)
505 1
|
2月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
266 0
|
2月前
|
机器学习/深度学习 监控 数据挖掘
Python 高效清理 Excel 空白行列:从原理到实战
本文介绍如何使用Python的openpyxl库自动清理Excel中的空白行列。通过代码实现高效识别并删除无数据的行与列,解决文件臃肿、读取错误等问题,提升数据处理效率与准确性,适用于各类批量Excel清理任务。
362 0
|
人工智能 供应链 前端开发
【精品问答】Python实战100例 | 技术日报(16期)
【精品问答】Python实战100例,确定不mark吗?还有云计算招聘岗位全方位需求解析+学习路径指南精彩直播,对云计算感兴趣的高校生、职场新人看过来~
598 0

推荐镜像

更多