Python的openpyxl使用記錄(包含合併單元格,圖片下載和圖片插入,設置邊框,設置背景顏色)
背景
因為公司最近要求我做一份自動化導出報告,內容有點多,為了省事,我選用了python,後面估計要自建在線辦公系統,這個後續再講
需要的庫
openpyxl 和Pandas
開始
Execl導入
from openpyxl import load_workbook
#此處抓取一個實體的execl數據對象
file_path = "../印刷站2.xlsx"
workbook = load_workbook(file_path)
單元格設置值
這個很簡單,為了提供複用性,我建了一個工具類具體方法如下
def set_cell_value(workbook, sheet_index, cell, value):"""?置 Excel 文件中指定?元格的值。"""# 加? Excel 文件# ??工作表sheet = workbook.worksheets[sheet_index]# ?置?元格的值sheet[cell] = value
import config
#傳遞數據對象 sheet的索引 單元格 數據
config.set_cell_value(work_book, 1, "D5", data.iloc[0, 0])
單元格設置插入圖片
因為部分資源我使用http地址或者實體ip地址抓取,實際邏輯如下:
工具類
import requests
#下載圖片
def download_image(url):response = requests.get(url)response.raise_for_status() # 确保?求成功return io.BytesIO(response.content)
#插入圖片
def insert_image_to_excel( wb,image_stream, sheet_index, cell,width,heigth):# 加??有的Excel工作簿# ?取指定的工作表(sheet_index?0?始)ws = wb.worksheets[sheet_index]# ?整?片大小? 100x100 像素resized_image_stream = resize_image(image_stream, width, heigth)# 插入?整后的?片到Excelopenpyxl_img = OpenPyxlImage(resized_image_stream)ws.add_image(openpyxl_img, cell)
# Excel數據對象 數據流 sheet所在索引 單元格 長和寬
config.insert_image_to_excel(work_booK, image_stream, 5, col, 200, 200)
合併單元格並設置邊框顏色
這裡我先設置合併的表格的第一行第一列的單元格自顏色,當合併單元格之後自然自己會將邊框顏色設置為整個合併的範圍
from openpyxl.styles import Border, Side
def create_shell_color(shell_info):thin_border = Border(left=Side(style='thin'),right=Side(style='thin'),top=Side(style='thin'),bottom=Side(style='thin'))shell_info.border=thin_border
sheet= work_booK["5.Setup output data"]begin_str = "d" + str(j) + ":h" + str(Y)config.create_shell_color(sheet["D" + str(j)])stage=68sheet.merge_cells(begin_str)
這裡送個好用的函數
輸入數字返回字母
def column_number_to_letter(column_number):"""?列????列字母"""letter = ""while column_number > 0:column_number -= 1letter = chr(column_number % 26 + ord('A')) + lettercolumn_number //= 26return letter
相关文章:
Python的openpyxl使用記錄(包含合併單元格,圖片下載和圖片插入,設置邊框,設置背景顏色)
背景 因為公司最近要求我做一份自動化導出報告,內容有點多,為了省事,我選用了python,後面估計要自建在線辦公系統,這個後續再講 需要的庫 openpyxl 和Pandas 開始 Execl導入 from openpyxl import load_workbook …...
基于springboot+vue实现的在线商城系统
系统主要功能: (1)商品管理模块:实现了商品的基本信息录入、图片上传、状态管理等相关功能。 (2)商品分类模块:实现了分类的增删改查、分类层级管理、商品分类的关联等功能。 (3&…...
fastjson漏洞--以运维角度进行修复
文章目录 前言一、漏洞详情二、修复过程1.通过脚本方式修复1.1.脚本修复原理1.2.脚本演示1.3.执行脚本 2. 手动升级包2.1.修复步骤2.2.遇到的问题 前言 该漏洞是三个月前由安全团队扫描出来的,主要影响是: FastJSON是阿里巴巴的开源JSON解析库,它可以解…...
82页精品PPT | 构建数字化工厂的智能制造-数字化智能制造
新模式、新技术 、新制造的挑战 中国制造业正处于转型升级的关键时期,面临着多方面的挑战。创新能力不足导致产品同质化严重,缺乏核心竞争力;质量管理水平参差不齐,影响着产品的可靠性和安全性;品牌价值不高ÿ…...
Python的10个日期和时间操作的实用技巧
在Python中,处理日期和时间是一项常见且重要的任务。datetime模块提供了丰富的功能来执行这些操作。以下是10个日期和时间操作的实用技巧及其代码演示: 1. 获取当前日期和时间 from datetime import datetimenow datetime.now() print(f"当前日期…...
关于大模型在产品开发中所面临的问题,利用大模型技术解决很简单!
“ 具体问题具体分析,大模型技术没有统一的解决方案 ” 有人说2024年是大模型应用的元年,而大模型在未来的发展潜力毋庸置疑,这也就意味着人工智能技术是下一个风口,因此各种各样基于大模型技术的创业公司如雨后春笋般涌现。 从…...
SpringBoot2:请求处理原理分析-利用内容协商功能实现接口的两种数据格式(JSON、XML)
文章目录 一、功能说明二、案例实现1、基于请求头实现2、基于请求参数实现 一、功能说明 我们知道,用ResponseBody注解标注的接口,默认返回给页面的是json数据。 其实,也可以返回xml结构的数据给页面。 这一篇就来实现一下这个小功能。 二、…...
BUUCTF 之Basic 1(BUU LFI COURSE 1)
1、启动靶场,会生成一个URL地址,打开给的URL地址,会看到一个如下界面 可以看到是一个PHP文件,非常的简单,就几行代码,判断一下是否有一个GET的参数,并且是file名字,如果是并且加载&a…...
Android 蓝牙三方和动态权限三方
记录一下最近用到的简单的框架 蓝牙 FastBle:Android BLE通信库的介绍与高级用法 - 简书 https://github.com/Jasonchenlijian/FastBle 动态权限: GitHub - googlesamples/easypermissions: Simplify Android M system permissions 位置权限举例,arrayOf中多个…...
点餐|基于java的电子点餐系统小程序(源码+数据库+文档)
电子点餐系统|小程序|在线点餐 目录 基于java的电子点餐系统小程序 一、前言 二、系统设计 三、系统功能设计 系统功能实现 前台: 后台: 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: …...
18、Gemini-Pentest-v1
难度 中 (个人认为是高) 目标 root权限 一个flag 靶机启动环境为VMware kali 192.168.152.56 靶机 192.168.152.64 信息收集 突破点大概就是web端了 web测试 访问主页直接就是目录遍历 不过进去后是一个正常的网页 简单的试了几个弱口令无果继续信息…...
MIT6.824 课程-MapReduce
MapReduce:在大型集群上简化数据处理 概要 MapReduce是一种编程模型,它是一种用于处理和生成大型数据集的实现。用户通过指定一个用来处理键值对(Key/Value)的map函数来生成一个中间键值对集合。然后,再指定一个reduce函数, 它用…...
7个 C# 高阶用法详解:从基础到实战
C# 高阶用法详解:从基础到实战 在实际开发中,C# 提供了很多高级特性和设计模式,帮助我们写出更加简洁、灵活和高效的代码。本篇将深入探讨 C# 中的高阶用法,通过丰富的示例,带你掌握这些工具的精髓。 1. LINQ&#x…...
[数据集][目标检测]乱堆物料检测数据集VOC+YOLO格式1143张1类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1143 标注数量(xml文件个数):1143 标注数量(txt文件个数):1143 标注…...
【SQL】百题计划:SQL对于空值的比较判断。
[SQL]百题计划 方法: 使用 <> (!) 和 IS NULL [Accepted] 想法 有的人也许会非常直观地想到如下解法。 SELECT name FROM customer WHERE referee_Id <> 2;然而,这个查询只会返回一个结果:Zach,尽管事实上有 4 个…...
OJ在线判题系统项目笔记
项目介绍 在线评测编程题目代码的系统,出题人预先设置题目的输入样例和输出样例,根据用户提交代码,进行编译代码,运行代码,判断代码执行结果是否正确。 后端服务 网关服务 接收前端请求,转发到对应的服…...
期望极大算法(Expectation Maximization Algorithm,EM)
定义 输入:观测变量数据Y,隐变量数据Z,联合分布P(Y,Z| θ \theta θ),条件分布PP(Z,Y| θ \theta θ); 输出:模型参数 θ \theta θ (1)选择参数的初值 θ ( 0 ) , 开始迭代 ; \theta^{(0)},开始迭代; θ(0),开始迭代; (2)E步:记 θ ( i ) 为第 i 次迭代参数 \theta^{(i)}为第…...
初级练习[4]:多表查询——表联结
目录 多表查询:表联结示例 查询有两门以上的课程不及格的同学的学号及其平均成绩 查询所有学生的学号、姓名、选课数、总成绩 查询平均成绩大于85的所有学生的学号、姓名和平均成绩 查询学生的选课情况:学号,姓名,课程号,课程名称 查询出每门课程的及格人数和不及格人数 …...
基于JAVA+SpringBoot+Vue的中药实验管理系统
基于JAVASpringBootVue的中药实验管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接🍅 哈…...
移动硬盘读取出错结构损坏?数据恢复实战指南
移动硬盘困境:读取出错与结构损坏 在日常的数据存储与传输中,移动硬盘以其大容量、便携性成为了众多用户的首选。然而,当移动硬盘遭遇读取出错或结构损坏的困境时,那些珍贵的文件、照片、视频等数据便岌岌可危,让人心…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...
何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡
何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践,很多人以为AI已经强大到不需要程序员了,其实不是,AI更加需要程序员,普通人…...
深入解析光敏传感技术:嵌入式仿真平台如何重塑电子工程教学
一、光敏传感技术的物理本质与系统级实现挑战 光敏电阻作为经典的光电传感器件,其工作原理根植于半导体材料的光电导效应。当入射光子能量超过材料带隙宽度时,价带电子受激发跃迁至导带,形成电子-空穴对,导致材料电导率显著提升。…...
Linux入门(十五)安装java安装tomcat安装dotnet安装mysql
安装java yum install java-17-openjdk-devel查找安装地址 update-alternatives --config java设置环境变量 vi /etc/profile #在文档后面追加 JAVA_HOME"通过查找安装地址命令显示的路径" #注意一定要加$PATH不然路径就只剩下新加的路径了,系统很多命…...
【R语言编程——数据调用】
这里写自定义目录标题 可用库及数据集外部数据导入方法查看数据集信息 在R语言中,有多个库支持调用内置数据集或外部数据,包括studentdata等教学或示例数据集。以下是常见的库和方法: 可用库及数据集 openintro库 该库包含多个教学数据集&a…...
在MobaXterm 打开图形工具firefox
目录 1.安装 X 服务器软件 2.服务器端配置 3.客户端配置 4.安装并打开 Firefox 1.安装 X 服务器软件 Centos系统 # CentOS/RHEL 7 及之前(YUM) sudo yum install xorg-x11-server-Xorg xorg-x11-xinit xorg-x11-utils mesa-libEGL mesa-libGL mesa-…...
