python:openpyxl 读取 Excel文件,显示在 wx.grid 表格中
pip install openpyxl
openpyxl-3.1.2-py2.py3-none-any.whl (249 kB)
et_xmlfile-1.1.0-py3-none-any.whl (4.7 kB)
摘要:A Python library to read/write Excel 2010 xlsx/xlsm files
pip install wxpython==4.2
wxPython-4.2.0-cp37-cp37m-win_amd64.whl (18.0 MB)
摘要: Cross platform GUI toolkit for Python, "Phoenix" version
编写 openpyxl_wx_grid.py 如下
# -*- coding: utf-8 -*-
""" openpyxl 读取.xlsx文件,显示在 wx.grid 表格中 """
import os
import sys
import datetime
import openpyxl
import wx
import wx.gridclass MyFrame(wx.Frame):def __init__(self):super().__init__(parent=None, title='openpyxl show on wx.grid', size=(1000,600))panel = wx.Panel(self)# 选择.xlsx文件名fileFilter = "Excel Files (*.xlsx)|*.xlsx"fileDialog = wx.FileDialog(self, message="选择xlsx文件", wildcard=fileFilter, style=wx.FD_OPEN)dialogResult = fileDialog.ShowModal()if dialogResult != wx.ID_OK:returnfilename = fileDialog.GetPath()if not os.path.exists(filename):print(f'Error: {filename} not found.')sys.exit(2)# Read Excel filebook = openpyxl.load_workbook(filename, data_only=True)#sheet = book['Sheet1']sheet = book.activenrows = sheet.max_row # 取最大行数if nrows > 10000:print(f" 行数: {nrows} > 10000 !")nrows = 10000ncols = sheet.max_column # 取最大列数if ncols > 26:print(f" columns: {ncols} > 26 !")ncols = 26# 创建一个表格self.grid = wx.grid.Grid(panel)self.grid.CreateGrid(nrows, ncols) # 创建一个 nrows行 ncols列的表格# 设置表格的列标题cols = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"for j in range(0, ncols):self.grid.SetColLabelValue(j, cols[j])# 设置表格的行标题for i in range(0, nrows):self.grid.SetRowLabelValue(i, str(i+1))# 向表格中添加数据for i in range(0, nrows):for j in range(0, ncols):cell = sheet.cell(row=i+1,column=j+1)v = cell.valuet = cell.data_typeif v is None:self.grid.SetCellValue(i,j, '')elif t in ('s','t'): # str, textself.grid.SetCellValue(i,j, v)elif t =='n': # numberif v%1 ==0: # intself.grid.SetCellValue(i,j, "%d" %v)else: # floatself.grid.SetCellValue(i,j, "%.4f" %v)elif t =='d': # dateself.grid.SetCellValue(i,j, v.strftime('%Y-%m-%d'))else:self.grid.SetCellValue(i,j, str(v))# 使用 sizer 来管理布局sizer = wx.BoxSizer(wx.VERTICAL)sizer.Add(self.grid, 1, wx.EXPAND | wx.ALL, 5)panel.SetSizer(sizer)if __name__ == '__main__':app = wx.App()frame = MyFrame()frame.Show(True)app.MainLoop()
运行 python openpyxl_wx_grid.py
参考了百度:文心一言:openpyxl 示例
一、load_workbook( ) 除了参数 filename 外为还有一些有用的参数:
load_workbook(filename, read_only=False, keep_vba=False, data_only=False, keep_links=True, rich_text=False)
read_only:是否为只读模式,对于超大型文件,要提升效率有帮助
keep_vba :是否保留 vba 代码,即打开 Excel 文件时,开启并保留宏
data_only:是否将公式转换为结果,即包含公式的单元格,是否显示最近的计算结果
keep_links:是否保留外部链接
rich_text: 是否保留富文本
二、读取公式:
如果使用 load_workbook() 方法在无参数的情况下打开一个Excel文件,并读取某单元格的值;
如果这个单元格本身的内容是公式,那么读取到的就是公式;如果这个单元格本身的内容是一个值,那么读取到的就是一个值。
三、读取公式计算后产生的数值
必须使用 load_workbook() 方法的 data_only=True 参数,例如:
work_book = openpyxl.load_workbook('test.xlsx', data_only=True)
这时,再去读取带公式的单元格,读取的 value 就是公式计算的结果了。
相关文章:
python:openpyxl 读取 Excel文件,显示在 wx.grid 表格中
pip install openpyxl openpyxl-3.1.2-py2.py3-none-any.whl (249 kB) et_xmlfile-1.1.0-py3-none-any.whl (4.7 kB) 摘要:A Python library to read/write Excel 2010 xlsx/xlsm files pip install wxpython4.2 wxPython-4.2.0-cp37-cp37m-win_amd64.whl (18.0 M…...
12P2532X152 KJ3222X1-BA1 CE4003S2B1 EMERSON DELTAV
12P2532X152 KJ3222X1-BA1 CE4003S2B1 EMERSON DELTAV 除了标准的实时计算、通信和控制,边缘设备和关键网络应用的fog通常执行人工智能(AI)、虚拟现实(VR)和增强现实(AR)解决方案。 目前,制药商和医疗保健机构对它们的需求快速增长,因为它们…...
P1014 [NOIP1999 普及组] Cantor 表
#include <bits/stdc.h> using namespace std; int main() {int n,k1;cin>>n;while (n>k) {nn-k;k;}if(k%20) cout<<n<<"/"<<(k1-n);else cout<<k1-n<<"/"<<n;return 0; }...
JMeter性能分析实战一:日常登录接口
负载测试 日常需求:负载测试! 对于桥的负载测试:我给你20t的一排车辆,看你能不能撑得住20t! 对于系统的负载测试: 逐步增加负载,便于问题的发现和定位,不要操之过急。逐步增加负载…...
内外网结合的多服务发布架构
1. 需求 1)有多个独立的web服务需要对外发布。 2)有AIGC的大模型服务需要在内网图形工作站上运行,也需要对外发布接口。 3)所有服务需要通过域名访问。 2. 现有资源 1)阿里云上的ECS云服务器一台,考虑…...
Unity中Shader的光照模型Lambert
文章目录 前言一、Lambert光照模型1、公式可以使用图形计算器来看出这个点积对于结果的影响 前言 Unity中Shader的光照模型Lambert 一、Lambert光照模型 1、公式 A:可以理解为环境光的颜色 K:反射系数 LC:主要的入射光的颜色 N:…...
(一)Log4Net - 介绍
0、相关概念 Log4j 几乎每个大型应用程序都包含自己的日志记录或跟踪 API。根据这一规则,E.U. SEMPER 🌹项目决定编写自己的跟踪 API。那是在 1996 年初。经过无数次的增强、几个化身和大量的工作,API 已经发展成为 log4j —— 一个流行的 Ja…...
[bug] mysql 时间与本地不一致
通过 select now() 查询到的时间比本机少了8个小时。 show variables like %time_zone%; //查询当前时区set global time_zone8:00; //在标准时区上加8小时,即东8区时间flush privileges; # 立即生效...
【改造先序遍历】222. 完全二叉树的节点个数
222. 完全二叉树的节点个数 解题思路-先序 直接改造先序遍历算法针对一个节点 如果节点为空 那么直接返回0其余交给递归 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* …...
windows文件和目录相关命令
目录 dir:用于浏览当前文件夹的内容。 cd:用于更改所在的工作目录。 md:用于创建一个新的目录。 rd:用于删除文件夹,如果不加/s参数的话只能删除空目录。 echo:用于输出一段文本信息。 type࿱…...
TL-ER3220G端口映射设置
1、打开IE浏览器或其它浏览器,在地址栏输入192.168.1.1登录路由器的Web管理界面; 2、打开后弹出密码输入框,输入路由器的用户名和密码,出厂默认值为admin/admin,成功登录后将看到路由器的系统状态信息; 3、…...
MySQL Cluster
文章目录 1.简介2.组成参考文献 1.简介 MySQL Cluster 是官方推出的基于 NDB(Network DataBase)存储引擎的高可用和可伸缩的分布式数据库系统。 以下是 MySQL NDB Cluster 的主要特点和能力: 高可用:MySQL Cluster 具有内置的高…...
Spring封装的原生WebSocket使用,带组的实现
前言 为了和TIO来进行对比websocket的简易程度,我这篇就是写一下Spring原生的webSocket的正常操作 拿来对比就可以说说优劣性 正文 首先还是导入原生依赖,这里不需要写版本号 <dependency><groupId>org.springframework.boot</groupId><artifactId>spr…...
Linux高性能服务器编程 学习笔记 第十一章 定时器
网络程序需要处理定时事件,如定期检测一个客户连接的活动状态。服务器进程通常管理着众多定时事件,有效地组织这些定时事件,使其在预期的时间被触发且不影响服务器的主要逻辑,对于服务器的性能有至关重要的影响。为此,…...
jenkins拉取git代码 code 128解决方案
jenkins拉取git代码 code 128解决方案 处理方案: 先检查一下自己的账号正常是否有权限(如账号正常有权限请看第二步)找到Jenkins工作目录,重命名caches文件夹(或直接删除caches内的所有内容) # 进入到jenkins目录(注意…...
【Linux】 ls命令使用
ls(英文全拼: list directory contents)命令用于显示指定工作目录下之内容(列出目前工作目录所含的文件及子目录)。 ls命令 -Linux手册页 著者 由Richard M.Stallman和David MacKenzie撰写。 语法 ls [-alrtAFR] [name...] ls命…...
【CVE-2023-35843】NocoDB 任意文件读取漏洞
一、漏洞描述 NocoDB 是 Airtable 的开源替代方案,可以“一键”将 MySQL、PostgreSQL、SQL Server、SQLite 和 MariaDB 转换为智能电子表格。此软件存在任意文件读取漏洞。 二、影响范围 NocoDB<0.106.1 三、网络空间搜索引擎搜索 fofa查询 icon_hash"-…...
在 ubuntu 22.04 上配置界面服务器 vnc
xrdp服务器的安装 步骤 1.安装服务器 $ sudo apt install tightvncserver // 命令过后并没有启动服务器 // 这个包没有 systemd 脚本,其不被 systemd 管理!!!查看配置 $ cat ~/.vnc/xstartup #!/bin/shxrdb "$HOME/.Xresources" xsetroot -solid grey #x-termina…...
强化学习------Sarsa算法
简介 SARSA(State-Action-Reward-State-Action)是一个学习马尔可夫决策过程策略的算法,通常应用于机器学习和强化学习学习领域中。它由Rummery 和 Niranjan在技术论文“Modified Connectionist Q-Learning(MCQL)” 中…...
[HNCTF 2022 WEEK2]easy_unser - 反序列化+wakeup绕过+目录绕过
题目代码: <?php include f14g.php;error_reporting(0);highlight_file(__FILE__);class body{private $want,$todonothing "i cant get you want,But you can tell me before I wake up and change my mind";public function __construct($want){…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙
Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...
