编程小白的自学笔记十七(python办公自动化操作EXCEL表格之作图)

news2024/12/23 7:52:21

系列文章目录

编程小白的自学笔记十六(python办公自动化操作EXCEL表格)

编程小白的自学笔记十五(python办公自动化操作EXCEL表格)

编程小白的自学笔记十四(python办公自动化创建、复制、移动文件和文件夹

编程小白的自学笔记十三(python办公自动化读写文件)

编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二)

编程小白的自学笔记十一(python爬虫入门三Selenium的使用+实例详解)

编程小白的自学笔记十(python爬虫入门二+实例代码详解) 

编程小白的自学笔记九(python爬虫入门+代码详解) 


目录

系列文章目录

文章目录

前言

一、条件选择后添加背景

二、插入柱状图

总结


前言

今天我们学习两个小案例,感觉还都是非常实用的:

  1. 小实战1:条件选择后添加背景
  2. 小实战2:生成柱状图

一、条件选择后添加背景

昨天我们已经完成了表格大部分操作,并且将数值大于50的复制到一个新表,现在我们来试试将数值大于50的行背景改为黄色,而文字设置一个随便什么颜色,先试试看,然后再详解代码,我们第一次写的代码是:

from openpyxl.styles import Font,PatternFill
import openpyxl
wb=openpyxl.load_workbook('大于50的表格.xlsx')
ws=wb.active
wb.copy_worksheet(ws)
ws.title='我是新的'
font = Font(name='黑体',size=30,bold=True,italic=True,color='000ff0')
fill = PatternFill(fill_type='solid',fgColor='ffff00')
rows = wb['我是新的'].rows
for row in rows:
    if int(row[1].value)>75:
        row[0].fill=fill
        row[1].font=font
wb.save('大于50的表格.xlsx')

 运行后,成功了

 

详解代码:

from openpyxl.styles import Font,PatternFill’,很好理解,导入字体库和填充库

wb.copy_worksheet(ws)’,这段代码是为了不破坏原有的表格,所以我重新复制了一份。

经实验,“color='000ff0'”是蓝色

这个实验还是有两个地方没有达到预期的效果;

一是没有将一行所有的单元格都填充,也没有将一行所有单元格的字体改变。这好办,是我们少写了,只需将代码增加两行。

二是我们仔细观察可以发现,我们复制出工作簿以后,修改的是原工作簿,我们想是修改复制后的工作表,重命名也是复制后的工作表,原表是一切不变,我把新建的工作表删掉,再把原表的名称修改回来,我们尝试修改代码:

rom openpyxl.styles import Font,PatternFill
import openpyxl
wb=openpyxl.load_workbook('大于50的表格.xlsx')
ws=wb.active
ws=wb.copy_worksheet(ws)
ws.title='我是新的'
font = Font(name='黑体',size=30,bold=True,italic=True,color='000ff0')
fill = PatternFill(fill_type='solid',fgColor='ffff00')
rows = wb['我是新的'].rows
for row in rows:
    if int(row[1].value)>75:
        row[0].fill=fill
        row[1].fill = fill
        row[0].font = font
        row[1].font=font
wb.save('大于50的表格.xlsx')

 运行成功后,实现了我们想要的结果。

 

二、插入柱状图

在EXCEL表格使用中,难免要将数据生成柱状图插入表格,因为图形会显的更加直观,而且我发现以前的office生成图标很简单,现在的wps要登录才行,是不是要会员就不清楚了,毕竟我登录都不想登录,我们先来看看生成柱状图代码:

from openpyxl.chart import BarChart,Reference
import openpyxl
wb=openpyxl.load_workbook('大于50的表格.xlsx')
ws=wb['我是新的']
chart=BarChart()
data=Reference(worksheet=ws,min_row=1,max_row=6,min_col=1,max_col=2)
categories=Reference(ws,min_row=2,max_row=6,min_col=1)
chart.add_data(data,titles_from_data=True)
chart.set_categories(categories)
ws.add_chart(chart,'F6')
wb.save('大于50的表格.xlsx')

 运行成功,我们来看运行结果

 

 

代码详解:

from openpyxl.chart import BarChart,Reference是Python编程语言中导入openpyxl库中的BarChart和Reference类的语句。

BarChart是openpyxl库中的一个类,用于创建条形图。它可以接受一系列数据并将其绘制成条形图。

Reference是openpyxl库中的一个类,用于在Excel工作表中引用单元格或范围。它可以用于在图表中设置数据源。

chart=BarChart()是Python编程语言中创建一个BarChart对象的语句。

BarChart是openpyxl库中的一个类,用于创建条形图。它可以接受一系列数据并将其绘制成条形图。

在这个语句中,我们将BarChart类的实例赋值给变量chart,这样我们就可以使用这个实例来创建和修改条形图了。

data=Reference(worksheet=ws,min_row=1,max_row=6,min_col=1,max_col=2) 是Python编程语言中创建一个Excel工作表中的数据引用的语句。

Reference是openpyxl库中的一个类,用于在Excel工作表中引用单元格或范围。它可以用于在图表中设置数据源。

在这个语句中,我们将一个Reference对象赋值给变量data。这个对象指定了要引用的数据的范围和位置。具体来说,它指定了要引用的工作表(在这里是ws),以及要引用的单元格的最小行号(1)、最大行号(6)、最小列号(1)和最大列号(2)。这意味着我们将引用第1到第6行、第1到第2列之间的所有单元格。

chart.add_data(data,titles_from_data=True) 是Python编程语言中在openpyxl库中创建一个BarChart对象时添加数据和标题的语句。

在这个语句中,我们将数据引用(data)和一个布尔值(True)作为参数传递给BarChart对象的add_data()方法。这个方法用于向图表中添加数据。

同时,我们还设置了一个名为titles_from_data的参数,它的值为True。这意味着我们希望从数据中自动提取标题并将其添加到图表中。如果我们没有显式地提供标题,那么这个参数将被忽略。

ws.add_chart(chart,'F6')

这表示表格插入的位置,这很好理解。

 其实这个表格也没有达到我们想要的预期,在这个案例中,我们并不想每个序号生成两个柱状图,但是却是有一蓝一红两根柱子,试试看怎么去,一是我把序号内容改成文字,看看会怎么样.

 

 没有报错,而且得到我们想要的样式。

二是我们将数值改成文字看看会怎么样

错误是没有报错,也生成了图形,只是没有柱子。

三是我们还是改代码,得到我们想要的结果,思来想去,只能把代码

data=Reference(worksheet=ws,min_row=1,max_row=6,min_col=1,max_col=2)

改为

data=Reference(worksheet=ws,min_row=1,max_row=6,min_col=2)


总结

1024

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt 项目实战 | 多界面编辑器

Qt 项目实战 | 多界面编辑器 Qt 项目实战 | 多界面编辑器界面设计创建子窗口类 官方博客:https://www.yafeilinux.com/ Qt开源社区:https://www.qter.org/ 参考书:《Qt 及 Qt Quick 开发实战精解》 Qt 项目实战 | 多界面编辑器 开发环境&…

运行segment anything模型的web demo 教程

这个web应用放在在源码的demo文件夹里: 这个前端仅基于React的web演示了如何加载固定图像和相应的SAM image embedding的.npy文件。 运行需要配置npm环境。 首先导出onnx的模型: import torch import numpy as np import cv2 import matplotlib.pyplo…

解决 Vue3 + Element Plus 树形表格全选多选以及子节点勾选的问题

原文链接: 解决 Vue3 Element Plus 树形表格全选多选以及子节点勾选的问题 前言 最近用到了 Element Plus 组件库的中的树形表格,但官网例子只能做到一层勾选,不能做到多层勾选,无法满足业务需求,所以研究了下&#…

PHP 预定义超全局变量 笔记/练习

预定义超全局数组变量 $_FILES 练习在最后 其他练习跟在每条笔记后 概述 预定义:预定义变量是 PHP 已定义,可以直接使用超全局:作用域是全局,可以在脚本的任何地方(包括函数内部、外部)都可以进行访问 常…

CSS必学:你需要知道的盒子模型的秘密

作者:WangMin 格言:努力做好自己喜欢的每一件事 CSDN原创文章 博客地址 👉 WangMin 作为前端开发来说,要掌握的CSS基础一定很多,那么CSS中盒子模型肯定是必考必问必掌握的前端知识点,因为它是CSS基础中非常重要的内容,…

分步实现编写LED驱动,实现特备文件和设备的绑定

通过字符设备驱动的分步实现编写LED驱动,另外实现特备文件和设备的绑定,发布到CSDN head.h #ifndef __HEAD_H__ #define __HEAD_H__ typedef struct {unsigned int MODER;unsigned int OTYPER;unsigned int OSPEEDR;unsigned int PUPDR;unsigned int ID…

photoshop2024免费插件Portraiture3

随着手机摄影的普及,修图可以说是现代人的必备生活技能之一了,现在谁发个朋友圈不把自己的照片修的美美的呢?那么如何拥有一张氛围感满满的照片呢?这不得不提图片处理软件中的王牌——photoshop。作为专业的图片处理软件&#xff…

Node.js与npm版本比对

Node.js与npm版本比对 Node.js与npm版本比对版本对比表Node版本对比 Node.js与npm版本比对 我们在项目开发过程中,经常会遇到公司一些老的前端工程项目,而我们当前的node及npm版本都是相对比较新的了。 在运行以前工程时,会遇到相关环境不匹…

2023年中国汽车差速器需求量、竞争现状及行业市场规模分析[图]

差速器是汽车驱动系统的主要部件,它的作用就是在向两边半轴传递动力的同时,允许两边半轴以不同的转速旋转,满足两边车轮尽可能以纯滚动的形式作不等距行驶,减少轮胎与地面的摩擦。汽车差速器是驱动车轮差速转弯或复杂路面强力通过…

KNN(K近邻)水仙花的分类(含答案)

题目 以下采用K-NN算法来解决水仙花的分类问题,每个样本有两个特征,第一个为水仙花的花萼长度,第二个为水仙花 的花萼宽度,具体数据见表, 1)设置k3, 采用欧式距离,分析分类精度为多少…

【强化学习】06 —— 基于无模型的强化学习(Control)

文章目录 简介On-policy Monte-Carlo ControlGLIEMC vs. TD Control On-policy Temporal Difference ControlSarsaExample1 Windy GridworldForward View Sarsa(λ)Backward View Sarsa(λ)Sarsa 代码 Off-Policy Learning重要性采样Importance Sampling使用重要性采样的离线策…

【计算机网络】应用层协议--HTTP协议及HTTP报文格式

目录 1、HTTP是什么 2、HTTP请求与响应 3、HTTP请求的两种方法(get和post)及区别 (面试题) 4、几种常见的错误的说法 5、HTTP协议的特点 6、应用场景 7、HTTP报文格式 8、面试题:HTTP常见的状态码都有哪些? 1、HTTP是什么 HTTP协议是在Web上进行…

Day08File类IO流字符集

File:代表文本和文件夹 File类只能对文件本身进行操作,不能读写文件里面存储的数据。 创建File类的对象 路径写法 绝对路径:从盘符开始 File file new File(“D:\\ceshi\\a.txt”); 相对路径:不带盘符,默认直接到当前工程下的目录寻找文件 F…

Ubuntu 安装 npm 和 node

前言 最近学习VUE,在ubuntu 2204 上配置开发环境,涉及到npm node nodejs vue-Cli脚手架等内容,做以记录。 一、node nodejs npm nvm 区别 ? node 是框架,类似python的解释器。nodejs 是编程语言,是js语言的…

[AUTOSAR][诊断管理][ECU][$19] 读取ECU的DTC故障信息

一、简介 在车载诊断中常用的诊断协议有ISO 14229等,在协议中主要定义了诊断请求、诊断响应的报文格式及ECU该如何处理诊断请求的应用。其中ISO 14229系列标准协议定义了用于行业内诊断通信的需求规范,也就是UDS。UDS主要应用于OSI七层模型的第七层——…

LInux系统编程(3)

取得拓展属性 #include <sys/types.h> #include <attr/xattr.h>ssize_t getxattr(const char* path, const char* key, void* value, size_t size); ssize_t lgetxattr(const char* path, const char* key, void* value, size_t size); ssize_t fgetxattr(int fd,…

FreeRTOS 任务的创建与删除

目录 1. 什么是任务&#xff1f; 2. 任务创建与删除相关函数 任务创建与删除相关函数有如下三个&#xff1a; 任务动态创建与静态创建的区别&#xff1a; xTaskCreate 函数原型​编辑 vTaskDelete 函数原型 3. 创建两个任务进行点灯实操 使用CubeMX快速移植 1.增加两个…

【谢希尔 计算机网络】第4章 网络层

目录 网络层 网络层的几个重要概念 网络层提供的两种服务 网络层的两个层面 网际协议 IP 虚拟互连网络 IP 地址 IP 地址与 MAC 地址 地址解析协议 ARP IP 数据报的格式 IP 层转发分组的过程 基于终点的转发 最长前缀匹配 使用二叉线索查找转发 网际控制报文协议…

2023CSPS 种树 —— 二分+前缀和

This way 题意&#xff1a; 一开始以为是水题&#xff0c;敲了一个二分贪心检查的代码&#xff0c;20分。发现从根往某个节点x走的时候&#xff0c;一路走来的子树上的节点到已栽树的节点的距离会变短&#xff0c;那么并不能按照初始情况贪心。 于是就想着检查时候用线段树…

2023-1024‍节日(内含表白代码)

文章目录 一、前言二、代码实现三、动态展示四、总结 一、前言 1024可以是计算机操作系统的进制单位&#xff0c;也可以是&#x1f9d1;‍&#x1f4bb;程序员们的特殊纪念日。 每年10月24日被行业认定为“程序员节”。 今天&#xff0c;正是一年一度的“1024程序员节”在此纪…