【openpyxl】总结最近使用到的openpyxl方法

news2024/11/18 9:44:50

这里写自定义目录标题

  • 单元格嵌入图片
  • 调节行高和列宽
  • 合并单元格
  • 自动换行
  • 按列插入数据
  • tableWidget数据导出到excel

单元格嵌入图片

在这里插入图片描述

from openpyxl.drawing.image import Image
from openpyxl.drawing.spreadsheet_drawing import AnchorMarker, TwoCellAnchor
from openpyxl.workbook import Workbook

wb = Workbook()
sheet = wb.create_sheet('Sheet1')


def cell_insert_image(sub_sheet, img_path, row_index, col_index):
    # 读取图像
    img = Image(img_path)
    # 左上角固定一个单元格,索引从0开始,AnchorMarker(列,微调,行,微调)
    _from = AnchorMarker(row_index, 50000, col_index, 50000)
    # 右下角固定到另一个单元格
    to = AnchorMarker(row_index + 1, -50000, col_index + 1, -50000)
    img.anchor = TwoCellAnchor('twoCell', _from, to)
    sub_sheet.add_image(img)
    # 设置的行高和列宽
    sub_sheet.row_dimensions[2].height = 100
    sub_sheet.column_dimensions['B'].width = 100


cell_insert_image(sheet, r"d69160564a32f8e1ba6b36ae5831f069.jpg", 1, 1)
wb.save("单元格嵌入图片.xlsx")

调节行高和列宽

sub_sheet.row_dimensions[2].height = 100 #索引从1开始
sub_sheet.column_dimensions['B'].width = 100

合并单元格

在这里插入图片描述
在这里插入图片描述

import openpyxl

wb = openpyxl.load_workbook('单元格嵌入图片.xlsx')
sheet = wb['Sheet']

# 合并第一行的第1-3列的单元格
sheet.merge_cells(start_row=1, end_row=1, start_column=1, end_column=3)
# 合并第一列的第3-4行
sheet.merge_cells(start_row=3, end_row=4, start_column=1, end_column=1)

wb.save('单元格嵌入图片.xlsx')

自动换行

在这里插入图片描述
在这里插入图片描述

import openpyxl
from openpyxl.styles import Alignment

wb = openpyxl.load_workbook('单元格嵌入图片.xlsx')
sheet = wb['Sheet2']
for cell in sheet['B']:
    cell.alignment = Alignment(wrapText=True)
wb.save('单元格嵌入图片.xlsx')

按列插入数据

在这里插入图片描述

import openpyxl
from openpyxl.cell.cell import ILLEGAL_CHARACTERS_RE
from openpyxl.utils import column_index_from_string


def insert_list_data_to_column(sub_sheet, list_data, column_name, start_row=1):
    col_index = column_index_from_string(column_name)
    for row_index in range(start_row, start_row + len(list_data)):
        col_val = list_data[row_index - start_row]
        try:
            sub_sheet.cell(row=row_index, column=col_index, value=col_val)
        except Exception as e:
            col_val = ILLEGAL_CHARACTERS_RE.sub(r'', col_val)
            sub_sheet.cell(row=row_index, column=col_index, value=col_val)


insert_data = {'A': ['测试数据', 1, 2, 3, 4, 5,6],
               'B': ['测试结果', 'passed', 'failed', 'passed', 'passed', 'passed', 'passed']}
wb = openpyxl.load_workbook('单元格嵌入图片.xlsx')
sheet = wb.create_sheet("Sheet3")
for column_name, list_value in insert_data.items():
    insert_list_data_to_column(sheet, list_value, column_name=column_name, start_row=1)
wb.save('单元格嵌入图片.xlsx')

tableWidget数据导出到excel

注意:openpyxl的行列索引都是从1开始,单元格的数据类型是str

import openpyxl
from PyQt5.QtWidgets import QTableWidget

wb = openpyxl.Workbook()
ws = wb.active
# tableWidget不再赘述其定义方式
# 插入表头
tableWidget: QTableWidget
for index in range(tableWidget.colorCount()):
    ws.cell(row=1, column=index + 1, value=tableWidget.horizontalHeaderItem(index).text())
# 插入数据
for row in range(tableWidget.rowCount()):
    for col in range(tableWidget.colorCount()):
        item = tableWidget.item(row, col)
        if item is not None:
            ws.cell(row=row + 2, column=col + 1, value=str(item.text()))
wb.save("导出.xlsx")

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

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

相关文章

Excel / PPT 办公技巧

Excel sum求和 我们先选中某个单元格单元格,并在编辑栏输入:SUM(),然后输入函数参数:B2:B9,最后按回车键结束确认,即可计算出销量总和; PPT 组合 选中需要…

2023-01-09 DBeaver链接postgresql.md

DBeaver连接postgresql 驱动不存在 Maven artifact maven:/net.postgis:postgis-jdbc:RELEASE not found 解决方法:窗口--->首选项--->驱动--->Maven http://maven.aliyun.com/nexus/content/groups/public/

【ORA-01745: invalid host/bind variable name】

mybatis插入sql错误,一开始没注意他的sql 根据错误信息 ORA-01745: 无效的主机/绑定变量名一查 全是 什么批量插入数据过多导致的 实际上我这个不是

LeetCode刷题 | 70. 爬楼梯、322. 零钱兑换、279. 完全平方数

70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 示…

怎么用云猫转码工具在线转换视频格式

我们平时在剪辑视频的时候,经常需要处理各种各样的视频格式,大家平时可以通过将不同的视频格式进行转换,就可以获得到更多的视频格式类型,那么有什么好用的工具可以快速转换视频格式的么? 推荐使用云猫转码工具在线转…

八大排序算法——(万字图文详解)

本篇文章是我对之前写过的八个排序算法的总结,感兴趣的小伙伴可以去我的八大排序算法专栏浏览,也可以点击下方标题跳转。 提示:本篇博客篇幅较长,建议小伙伴们查看目录,按需浏览 目录 正文 1 直接插入排序 2 希尔…

JAVA关于异常的处理

1.throw和throws public static int score(int math,int chinese) throws Exception {if(math < 0 || chinese < 0){throw new Exception();}return (mathchinese)/2;}从这里看&#xff0c; throw是在方法体中处理异常的&#xff0c;抛出&#xff0c;这个时候&#xff0…

centos7 解决 IP自动变化的问题

进入&#xff1a;cd /etc/sysconfig/network-scripts/ 找到&#xff1a;ircfg-ens33 文件 vi 打开 BOOTPROTO“static” IPADDR192.168.98.130 //设置的本机ip&#xff0c;需和网关在同一网段 192.168.234.xxx NETMASK255.255.255.0 子网掩码 设置好后 :wq systemctl restart…

Linux下Redis 6.2.6安装和部署详细图文步骤

目录 1、下载redis6.2.6安装包2、解压压缩文件3、重命名和移动文件4、redis编译安装1&#xff09;redis编译&#xff0c;执行make命令。2&#xff09;redis安装执行make install命令。 5、redis启动6、设置后台启动redis7、设置redis密码8、设置redis服务远程访问1、防火墙添加…

windows10关闭WPS广告及清理备份与设置升级

1、清理备份 备份开启可以预防断电等情况意外关闭文档&#xff0c;导致内容丢失&#xff0c;建议开启备份 2、WPS广告&#xff0c;恶意已久&#xff0c;不解释 3、路径 C:\Users\UserHostname\AppData\Local\Kingsoft\WPS Office\11.1.0.14309\office6 ksomisc.exe 程序。 …

微信小程序页面跳转的区别

①wx.navigateTo&#xff1a;跳转到新页面&#xff0c;可以返回上一层页面 ②wx.redirectTo&#xff1a;跳转到新页面并且关闭当前页面&#xff0c;不可以返回上一层页面(跳转到指定的非TabBar页面) ③wx.reLaunch&#xff1a;跳转到新页面并且关闭当前所有页面&#xff0c;不可…

怎么保护电脑重要文件夹?

当我们在电脑文件夹中存放重要数据时&#xff0c;为了避免数据泄露&#xff0c;就必须使用相应的方式保护文件夹的数据安全。那么我们该怎么保护电脑重要文件夹呢&#xff1f;下面我们就一起来了解一下吧。 文件夹隐藏 我们在文件夹上单击鼠标右键选择“属性”&#xff0c;随后…

Galaxybase-convert实践:两步实现Neo4j数据迁移

前言 Galaxybase是创邻科技自主研发的国内首款超大规模分布式并行原生图平台产品&#xff0c;拥有优异的数据读写查询性能、强⼤的可视化分析能力、丰富的可编程接口和开箱即用的图算法引擎&#xff0c;是集存储、计算、分析于一体的图数据全⽣命周期⼀站式管理平台&#xff0…

ProtoBuf—2

文章目录 1、字段规则2、消息类型的定义和使用3、enum的使用4、any类型2、oneof类型3、map类型 1、字段规则 消息的字段可以用以下几种规则来修饰&#xff1a; singular&#xff1a;消息中可以包含该字段零次或一次(不超过一次)。proto3语法中&#xff0c;字段默认使用该规则…

【XML技术】web杂谈(3)之深入理解什么是XML、XML的语法详解

涉及知识点 什么是 XML&#xff0c;XML的特征&#xff0c;XML的基本语法及应用&#xff0c;应用程序接口&#xff08;DOM&SAX&#xff09;&#xff0c;XML的文档的显示&#xff0c;深入了解XML技术。 原创于&#xff1a;CSDN博主-《拄杖盲学轻声码》&#xff0c;更多内容可…

马氏距离mahalanobis distance

来看个题 【解】 代码验证 import numpy as np from scipy.spatial.distance import mahalanobis# 定义四个点坐标的数组 points np.array([[0.5, 1.5], [4, 4], [8, 6], [2, 2]])# 计算协方差矩阵 covariance_matrix np.cov(points.T)# 计算马氏距离 mean np.mean(points,…

策略模式Strategy介绍与C++实现

目录 1、策略模式的提出&#xff1a; 2、策略模式定义&#xff1a; 3、策略模式总结&#xff1a; 4、需求描述&#xff1a; 5、普通实现 6、使用策略模式实现 1、策略模式的提出&#xff1a; 在软件构建过程中&#xff0c;某些对象使用的算法可能多种多样&#xff0c;经…

Ubuntu下 NVIDIA Container Runtime 安装与使用

NVIDIA Container Runtime官网 GitHub仓库&#xff1a;Docker 是开发人员采用最广泛的容器技术。借助 NVIDIA Container Runtime&#xff0c;开发人员只需在创建容器期间注册一个新的运行时&#xff0c;即可将 NVIDIA GPU 暴露给容器中的应用程序。用于 Docker 的 NVIDIA Conta…

自然语言处理:任务与应用

文章目录 一、基本任务1.词性标注Part-of-speech (POS) tagging2.命名实体识别Named Entity Recognition (NER)3.共指消解Coreference Resolution4.句法依赖解析Syntactic Dependency Parsing5.中文分词Chinese Word Segmentation 二、常见应用1.文本匹配2. 知识图谱3. 问答系统…

微服务中的负载均衡

如图 有三处需要负载均衡 这里主要讲内部的grpc调用的 负载均衡 图中3的地方 ① 集中式load balance ② 进程内load balance ③独立进程load balance 首选第二种方式