16.使用读写包操作Excel文件:XlsxWriter 包

一 XlsxWriter 的介绍

XlsxWriter 只能写入 Excel 文件。
OpenPyXL 和 XlsxWriter 的区别在笔记 15 。

二 如何使用 XlsxWriter

1.导包

 import datetime as dtimport xlsxwriterimport excel

2.实例化工作簿

book = xlsxwriter.Workbook("xlxswriter.xlsx")
book.close()

运行后会创建一个空白的 excel 文件。

3.添加工作表并为其命名

sheet = book.add_worksheet("Sheet1")

4.为工作表写入数据

使用A1表示法和单元格索引 (从0开始)写入各个单元格。
sheet.write("A1", "Hello 1")
sheet.write(1, 0, "Hello 2")

5.格式化:填充颜色、对齐、边框和字体

formatting = book.add_format({"font_color": "#FF0000","bg_color": "#FFFF00","bold": True, "align": "center","border": 1, "border_color": "#FF0000"})sheet.write("A3", "Hello 3", formatting)

    font_color": "#FF0000": 设置字体颜色为红色。

    bg_color": "#FFFF00": 设置单元格的背景颜色为黄色。

    bold": True: 将字体设置为粗体。

    align": "center": 将单元格内容水平居中对齐。

    border": 1: 为单元格添加边框,宽度为 1。

    border_color": "#FF0000": 设置边框颜色为红色。

    6.数字格式化(使用Excel的格式化字符串)

    number_format = book.add_format({"num_format": "0.00"})
    sheet.write("A4", 3.3333, number_format)

    book.add_format({...}): 用于定义单元格的显示样式。

    "num_format": "0.00": 设置单元格的数字格式为小数点后保留两位小数。这意味着无论数字的实际值是多少,它都将在 Excel 中显示为两位小数。

    sheet.write("A4", 3.3333, number_format): 这行代码在 Excel 工作表的单元格 A4 中写入数字 3.3333,并应用之前定义的 number_format 格式。

    示例:

    具体参考 OpenPyXL 对应章节。

    7.日期格式化(使用Excel的格式化字符串)

    date_format = book.add_format({"num_format": "mm/dd/yy"})
    sheet.write("A5", dt.date(2016, 10, 13), date_format)

    8.索引和标题格式化

    类比 OpenPyXL 中的索引和标题格式化。

    9.在 Excel 工作表的单元格中设置公式

    必须使用以逗号分隔的英文公式名称。

    sheet.write("A6", "=SUM(A4, 2)")

    10.图片

    sheet.insert_image(0, 2, "images/python.png")

    11.二维列表(使用excel模块)

    data = [[None, "North", "South"],["Last Year", 2, 5],["This Year", 3, 6]]
    excel.write(sheet, data, "A10")

    12.图表

    sales_report_xlsxwriter.py
    https://pan.baidu.com/s/1Gg0ePtKHRK4-q-qBLptL_Q?pwd=hnk6 提取码: hnk6 
    chart = book.add_chart({"type": "column"})
    chart.set_title({"name": "Sales per Region"})
    chart.add_series({"name": "=Sheet1!A11","categories": "=Sheet1!B10:C10","values": "=Sheet1!B11:C11"})
    chart.add_series({"name": "=Sheet1!A12","categories": "=Sheet1!B10:C10","values": "=Sheet1!B12:C12"})
    chart.set_x_axis({"name": "Regions"})
    chart.set_y_axis({"name": "Sales"})
    sheet.insert_chart("A15", chart)

    chart = book.add_chart({"type": "column"})

    创建一个新的图表对象,并指定图表类型为柱状图(column)。

    chart.set_title({"name": "Sales per Region"})

    为图表设置标题,标题内容为 "Sales per Region"。

    chart.add_series({"name": "=Sheet1!A11", "categories": "=Sheet1!B10:C10", "values": "=Sheet1!B11:C11"})
    chart.add_series({"name": "=Sheet1!A12", "categories": "=Sheet1!B10:C10", "values": "=Sheet1!B12:C12"})

    向图表中添加数据系列。每个数据系列由一个名称、一个类别范围和一个值范围组成。

    "name": "=Sheet1!A11": 指定数据系列的名称,引用工作表 Sheet1 中的单元格 A11

    "categories": "=Sheet1!B10:C10": 指定数据系列的类别,引用工作表 Sheet1 中的单元格范围 B10:C10

    "values": "=Sheet1!B11:C11": 指定数据系列的值,引用工作表 Sheet1 中的单元格范围 B11:C11

    chart.set_x_axis({"name": "Regions"})
    chart.set_y_axis({"name": "Sales"})

    设置坐标轴标签。

    chart.set_x_axis({"name": "Regions"}): 设置 X 轴的标签为 "Regions"。

    chart.set_y_axis({"name": "Sales"}): 设置 Y 轴的标签为 "Sales"。

    sheet.insert_chart("A15", chart)

    将创建的图表插入到工作表的单元格 A15 中。

    13.关闭工作簿并在磁盘上创建文件

    book.close()

    14..xlsm 格式的文件处理


    三 使用 XlsxWriter 写入大型文件:逐行写入 

    XlsxWriter 有一个和 OpenPyXL 类似的选项叫作 constant_memory。它也会强制逐行写入。

    以字典的形式来传递 options 参数。

    book = xlsxwriter.Workbook("xlsxwriter_optimized.xlsx",options={"constant_memory": True})
    sheet = book.add_worksheet()
    # 生成一张包含1000x200个单元格的工作表
    for row in range(1000):sheet.write_row(row , 0, list(range(200)))
    book.close()

    sheet = book.add_worksheet():在工作簿 book中添加一个新的工作表,并将其赋值给变量sheet。默认情况下,新创建的工作表会被命名为"Sheet1"。

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35365.html

    如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    LeetCode 124.二叉树中的最大路径和

    题目: 二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点…

    【Dubbo+Zookeeper】——SpringBoot+Dubbo+Zookeeper知识整合

    🎼个人主页:【Y小夜】 😎作者简介:一位双非学校的大二学生,编程爱好者, 专注于基础和实战分享,欢迎私信咨询! 🎆入门专栏:🎇【MySQL&#xff0…

    MCP 开放协议

    本文翻译整理自: https://modelcontextprotocol.io/introduction 文章目录 简介一、关于 MCP二、为什么选择MCP?通用架构 三、开始使用1、快速入门2、示例 四、教程五、探索 MCP六、贡献和支持反馈贡献支持和反馈 服务器开发者一、构建服务器1、我们将要…

    方差,协方差及协方差矩阵的计算

    1.方差 方差是用来衡量一组数据的离散程度,数序表达式如下: σ 2 1 N ∑ i 1 N ( x i − μ ) 2 \sigma^2\frac1N\sum_{i1}^N(x_i-\mu)^2 σ2N1​i1∑N​(xi​−μ)2 σ 2 σ^2 σ2表示样本的总体方差, N N N 表示样本总数, x i x _i xi​…

    【2025】基于python+django的慢性病健康管理系统(源码、万字文档、图文修改、调试答疑)

    系统功能结构图如下 慢性病健康管理系统 课题背景 随着全球人口老龄化的加剧以及生活方式的改变,慢性病的发病率呈上升趋势,给个人健康和社会医疗资源带来了巨大压力。传统的慢性病管理模式存在信息不畅、患者参与度低、医疗资源分配不均等问题&#xf…

    2.2 B/S架构和Tomcat服务器

    本文介绍了B/S架构、Tomcat服务器及其与IDEA的整合。B/S架构是一种基于浏览器的网络计算模式,具有跨平台、易用性强的特点,适用于互联网应用。Tomcat是Apache开源的Web服务器,支持Java Web应用的部署和运行。文章通过实例演示了如何下载、安装…

    QT非UI设计器生成界面的国际化

    目的 UI设计器生成界面的国际化,比较容易实现些,因为有现成的函数可以调用,基本过程如下: void MainWindow::on_actLang_CN_triggered() {//中文界面qApp->removeTranslator(trans);delete trans;transnew QTranslator;trans…

    Hackme靶机通关攻略

    1,打开靶机和kali,在kali终端中扫描靶机ip,得到靶机ip为192.168.50.137 arp-scan -l 2,使用工具扫描出后台目录后访问login.php 3,注册后登陆发现有输入框,可以尝试使用sql注入来得到用户名和密码,密码需要…

    国产编辑器EverEdit - 工具栏自定义及认识工具栏上的按钮

    1 设置-高级-工具条 1.1 设置说明 1.1.1 工具条自定义 选择主菜单工具 -> 设置 -> 常规,在弹出的选项窗口中选择工具条分类,如下图所示: 左侧窗口是当前支持所有功能按钮列表(上图中居中栏),右侧的窗口是当前显示在工具栏…

    docker安装rabbitmq

    第一步直接dokce拉取rabbitmq镜像docker 利用docker直接拉取镜像最新版:docker search rabbitmq 运行mq: 需要注意的是-p 5673:5672 解释:-p 外网端口:docker的内部端口 ,你们可以改成自己的外网端口号,我这…

    【实战ES】实战 Elasticsearch:快速上手与深度实践-8.2.2成本优化与冷热数据分离

    👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 8.2.2AWS OpenSearch Serverless 成本优化与冷热数据分离深度实践1. 成本构成分析与优化机会识别1.1 Serverless模式成本分布1.2 冷热数据特征分析数据特征矩阵 2. 冷热数据…

    安卓edge://inspect 和 chrome://inspect调试移动设备上的网页

    edge://inspect 和 chrome://inspect 是用于调试浏览器中运行的网页和移动设备上的网页的工具。这两个工具分别属于 Microsoft Edge 和 Google Chrome 浏览器。以下是它们的详细介绍: chrome://inspect 如果是直接使用数据线调试,则只需要执行下面的第一…

    checkpoint机制

    1、什么是checkpoint 将缓冲池中的脏页刷新到磁盘,并更新redo log的checkpoint位点,确保数据库在发生故障时可以快速恢复到一致的状态。 2、checkpoint执行过程 确保需要刷新的脏页:从缓冲池中选取一部分需要刷新的页数据页刷新&#xff1…

    【微服务日志收集①】使用FileBeat+Logstash+ES搭建ELK日志系统

    使用FileBeatLogstashES搭建ELK日志系统,架构图如下: 1、 使用docker快速创建ES服务和Kibana服务 前置条件:需要在linux上提前安装好docker和docker-compose 1.1、在linux创建好一个用于存放docker-compose配置文件的文件夹 我的目录是/app/…

    Centos 7 安装达梦数据库

    一、环境准备 1. 确认操作系统的版本和数据库的版本是否一致 cat /etc/redhat-release 2. 关闭防火墙 查看防火墙状态 firewall-cmd --state 停止firewall systemctl stop firewalld.service 禁止firewall开机启动 systemctl disable firewalld.service 3. 修改文件l…

    仿“东方甄选”直播商城小程序运营平台

    在公域直播流量红利趋于饱和、流量成本大幅攀升的当下,私域直播为企业开辟了新的流量聚集和转化渠道,特别是对于那些希望在私域流量领域取得突破的品牌商家来说,直播场景以其独特的高频互动氛围,相比其他运营方式,展现…

    ZED X系列双目3D相机的耐用性与创新设计解析

    在工业自动化和学术研究领域,高精度的视觉设备正成为提升效率和质量的关键。ZED X系列AI立体相机,凭借其先进的技术和耐用的设计,为这一领域带来了新的可能。 核心技术:深度感知与精准追踪 ZED X系列的核心技术之一是Neural Dept…

    Cursor的使用感受,帮你使用好自动化编程工具,整理笔记

    使用感受 说实话,我觉得cursor还是好用的,可能我刚开始使用,没有使用的非常的熟练,运用也没有非常的透彻,总体体验还是不错的,在使用它时,我优先考虑,前端页面功能复用的时候&#…

    《C#上位机开发从门外到门内》3-5:基于FastAPI的Web上位机系统

    文章目录 一、项目概述二、系统架构设计三、前后端开发四、数据可视化五、远程控制六、系统安全性与稳定性七、性能优化与测试八、实际应用案例九、结论 随着互联网技术的快速发展,Web上位机系统在工业自动化、智能家居、环境监测等领域的应用日益广泛。基于FastAPI…

    vue3单独引用element-plus的Infinite Scroll无限滚动;vue3自定义指令

    文章目录 1.正常单独使用element-plus其他功能组件2.引入类似与指令的插件3.自定义指令钩子 1.正常单独使用element-plus其他功能组件 引入即可使用 import { ElSelect, ElOption } from "element-plus"2.引入类似与指令的插件 需要先引入,再注册&…