当前位置: 首页 > news >正文

wxpython:wx.grid 表格显示 Excel xlsx文件

pip install xlrd
xlrd-1.2.0-py2.py3-none-any.whl (103 kB)
摘要: Library for developers to extract data from Microsoft Excel (tm) spreadsheet files

pip install wxpython==4.2
wxPython-4.2.0-cp37-cp37m-win_amd64.whl (18.0 MB)
Successfully installed wxpython-4.2.0

编写 wx_grid_xlsx.py 如下

# -*- coding: utf-8 -*-
""" wx.grid 表格显示 Excel xlsx文件 """
import os
import sys
import datetime
import xlrd
import wx  
import wx.grid  class MyFrame(wx.Frame):def __init__(self):  super().__init__(parent=None, title='wx.grid view xlsx ', size=(1000,600))panel = wx.Panel(self)  # 选择.xlsx文件名fileFilter = "xlsx Files (*.xlsx)|*.xlsx|" "Excel files (*.xls)|*.xls"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)book = xlrd.open_workbook(filename)sheetname = "Sheet1"sheet = book.sheet_by_name(sheetname)nrows = sheet.nrows  # 获取sheet中的有效行数if nrows > 10000:print(f" 行数: {nrows} > 10000 !")nrows = 10000ncols = sheet.ncols  # 获取sheet中的有效列数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))  #单元类型cell_type: 0.empty, 1.string, 2.number, 3.date, 4.boolean, 5.error, 6.blank# 向表格中添加数据for i in range(0, nrows):for j in range(0, ncols):v = sheet.cell_value(i,j)t = sheet.cell_type(i,j)if t ==0:self.grid.SetCellValue(i,j, '')elif t ==1:self.grid.SetCellValue(i,j, v)elif t ==2:if v%1 ==0:self.grid.SetCellValue(i,j, "%d" %v)else:self.grid.SetCellValue(i,j, "%.4f" %v)elif t ==3:date_tuple = xlrd.xldate_as_tuple(v, book.datemode)date_v = datetime.date(*date_tuple[:3])self.grid.SetCellValue(i,j, date_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(False)  frame = MyFrame()frame.Show(True)    app.MainLoop()

运行 python wx_grid_xlsx.py

参考了百度:文心一言:示例 wx_grid_demo.py

import wx  
import wx.grid  class MyFrame(wx.Frame):  def __init__(self):  super().__init__(parent=None, title='Grid Example')  panel = wx.Panel(self)  # 创建一个表格  self.grid = wx.grid.Grid(panel)  self.grid.CreateGrid(5, 3)  # 创建一个 5 行 3 列的表格  # 设置表格的列标题  self.grid.SetColLabelValue(0, "Column A")  self.grid.SetColLabelValue(1, "Column B")  self.grid.SetColLabelValue(2, "Column C")  # 设置表格的行标题  self.grid.SetRowLabelValue(0, "Row 1")  self.grid.SetRowLabelValue(1, "Row 2")  self.grid.SetRowLabelValue(2, "Row 3")  # 向表格中添加数据  self.grid.SetCellValue(0, 0, "Data 1-1")  self.grid.SetCellValue(0, 1, "Data 1-2")  self.grid.SetCellValue(0, 2, "Data 1-3")  self.grid.SetCellValue(1, 0, "Data 2-1")  self.grid.SetCellValue(1, 1, "Data 2-2")  self.grid.SetCellValue(1, 2, "Data 2-3")  # 使用 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()    app.MainLoop()

相关文章:

wxpython:wx.grid 表格显示 Excel xlsx文件

pip install xlrd xlrd-1.2.0-py2.py3-none-any.whl (103 kB) 摘要: Library for developers to extract data from Microsoft Excel (tm) spreadsheet files pip install wxpython4.2 wxPython-4.2.0-cp37-cp37m-win_amd64.whl (18.0 MB) Successfully installed wxpython-4.…...

事件循环机制

eventLoop 事件循环(Event Loop)是用于管理和调度异步任务执行的一种机制,通常在浏览器中,也在其他 JavaScript 运行环境中存在。事件循环确保 JavaScript 单线程的执行模型下能够处理非阻塞的异步任务,以避免程序阻塞…...

苹果曾考虑基于定位控制AirPods Pro自适应音频

在一次最近的采访中,苹果公司的高管Ron Huang和Eric Treski透露,他们在开发AirPods Pro自适应音频功能时,曾考虑使用GPS信号来控制音频级别。这个有趣的细节打破了我们对AirPods Pro的固有认知,让我们对苹果的创新思维有了更深的…...

【代码阅读笔记】yolov5 rknn模型部署

一、main函数思路 二、值得学习的地方 1、关注yolov5检测流程 2、其中几个重要的结构体 typedef struct {int left;int right;int top;int bottom; } YOLOV5_BOX_RECT; // box坐标信息typedef struct {char name[YOLOV5_NAME_MAX_SIZE];int class_index;YOLOV5_BOX_RECT box…...

【多线程】进程与线程 并发编程 面试题总结

进程和线程 进程是程序执行时的一个实例,即它是程序已经执行到何种程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。线程是进程的一个执行流,是CPU调度和分派的基…...

C++算法 —— 动态规划(10)二维费用背包

文章目录 1、动规思路简介2、一和零3、盈利计划 背包问题需要读者先明白动态规划是什么,理解动规的思路,并不能给刚接触动规的人学习。所以最好是看了之前的动规博客,以及两个背包博客,或者你本人就已经懂得动规了。 1、动规思路简…...

MySQL数据库正在耗用大量CPU的问题排查

这是一篇实战性的文章,如何处理正在发生的MYSQL服务器CPU飙升的问题,一般情况下,MySQL是不会耗用这么高的CPU的,要么是不走索引的查询,要么是同一时间出现了大量比较耗用资源的查询,不管出现的是哪一种情况…...

php替换字符串里的a变为b

$tempstrstr_replace("\\","/",$tempstr); //把$tempstr中的a替换成b $tempstrstr_replace("a","b",$tempstr);...

黑豹程序员-架构师学习路线图-百科:CSS-网页三剑客

文章目录 1、为什么需要CSS2、发展历史3、什么是CSS4、什么是SASS、SCSS 1、为什么需要CSS 作为网页三剑客的第二,CSS为何需要它,非常简单HTML只能完成页面的展现,但其做出来的页面奇丑无比。 随着网络的普及,人们的要求更高&…...

NUWA论文阅读

论文链接:NUWA: Visual Synthesis Pre-training for Neural visUal World creAtion 文章目录 摘要引言相关工作视觉自回归模型视觉稀疏自注意 方法3D数据表征3D Nearby Self-Attention3D编码器-解码器训练目标 实验实现细节与SOTA比较T2I微调T2V微调V2V微调Sketch-t…...

4.Tensors For Beginners-Vector Definition

在上一节,已经了解了前向和后向转换。 什么是向量? 定义1:向量是一个数字列表 这很简洁,也通俗易懂。 现有两个向量: 如果要把这两个向量给加起来,只需把对应位置的元素(组件)给加起来。 而要缩放向量&…...

vertx学习总结5

这章我们讲回调,英文名:Beyond callbacks 一、章节覆盖: 回调函数及其限制,如网关/边缘服务示例所示 未来和承诺——链接异步操作的简单模型 响应式扩展——一个更强大的模型,特别适合组合异步事件流 Kotlin协程——…...

Go,从命名开始!Go的关键字和标识符全列表手册和代码示例!

目录 一、Go的关键字列表和分类介绍关键字在Go中的定位语言的基石简洁与高效可扩展性和灵活性 关键字分类声明各种代码元素组合类型的字面表示基本流程控制语法协程和延迟函数调用 二、Go的关键字全代码示例关键字全代码示例 三、Go的标识符定义基础定义特殊规定关键字与标识符…...

【网络】网络扫盲篇 ——用简单语言和图解带你入门网络

网络的一些名词和基础知识讲解 前言正式开始一些基础知识发展背景运营商和生产商 协议协议的分层TCP/IP五层(或四层)模型(可以不看,对新手来说太痛苦了,我这里只是为了让屏幕前的你过一遍就好,里面很多概念新手是不太懂的&#xf…...

【项目开发 | C语言项目 | C语言薪资管理系统】

本项目是一个简单的薪资管理系统,旨在为用户提供方便的员工薪资管理功能,如添加、查询、修改、删除员工薪资信息等。系统通过命令行交互界面与用户进行交互,并使用 txt 文件存储员工数据。 一,开发环境需求 操作系统:w…...

Android---GC回收机制与分代回收策略

目录 GC 回收机制 垃圾回收(Garbage Collection, GC) 垃圾回收算法 JVM 分代回收策略 1. 新生代 2. 老年代 GC Log 分析 引用 GC 回收机制 垃圾回收(Garbage Collection, GC) 垃圾就是内存中已经没有用的对象,JVM 中的垃圾回收器(Garbage Collector)会自…...

前缀、中缀、后缀表达式相互转换工具

目录 1. 界面一览 2. 使用说明 3. 实例演示 3.1 输入中缀 3.2 输入前缀 3.3 输入后缀 3.4 选择错误的类型 4. 代码 5. 资源地址 关于什么是前缀、中缀、后缀表达式,相信你不知道这个东西,那你也不会点进来这篇博客,当然,…...

Vue之ElementUI之动态树+数据表格+分页(项目功能)

目录 前言 一、实现动态树形菜单 1. 配置相应路径 2. 创建组件 3. 配置组件与路由的关系 index.js 4. 编写动态树形菜单 5. 页面效果演示 二、实现数据表格绑定及分页功能 1. 配置相应路径 2. 编写数据表格显示及分页功能代码 BookList.vue 3. 演示效果 总结 前言…...

【CAD二次开发】给CAD添加TRUSTEDPATHS避免dll插件信任弹窗

找到配置文件目录,遍历下面的每个配置文件; 找到 Variables 下的TRUSTEDPATHS项目;在后面添加新的目录即可,多个目录使用分号分隔; public static void AddPath(string trusedPath){// 指定注册表键的路径...

编译和链接

编译和链接 一:???二:翻译环境1:编译1:预处理2:编译 2:链接 三:运行环境: 本文章所使用的图片均来在yyds鹏哥一:?&#xf…...

常识判断 --- 科技常识

目录 力与热 光和声 航空成就 垃圾分类 百科知识 血型 二十四节气歌 春雨惊春清谷天 夏满忙夏暑相连 秋处露秋寒霜降 冬雪雪冬小大寒 力与热 光和声 航空成就 垃圾分类 百科知识 血型...

修改npm全局安装的插件(下载目录指向)

我们先打开终端 然后执行 npm config get prefix查看npm 的下载地址 一般都会在C盘 但是 我们都知道 C盘下东西多了是很不好的 所以 我们可以执行 npm config set prefix “E:\npmfile”将 npm 的下载地址 改变成 E盘下的 npmfile目录 这样 以后 默认全局安装的插件就会都到…...

<C++> 异常

C语言传统的处理错误的方式 传统的错误处理机制: 终止程序,如assert,缺陷:用户难以接受。如发生内存错误,除0错误时就会终止程序。返回错误码,缺陷:需要程序员自己去查找对应的错误。如系统的…...

聊聊HttpClientBuilder

序 本文主要研究一下HttpClientBuilder HttpClientBuilder httpclient-4.5.10-sources.jar!/org/apache/http/impl/client/HttpClientBuilder.java public class HttpClientBuilder {public static HttpClientBuilder create() {return new HttpClientBuilder();}protected…...

MacOS - Sonoma更新了啥

1 系统介绍 苹果公司于2023年9月26日发布了macOS Sonoma 14.0正式版。名称由来不知道,可能是地名:Sonoma是一个地名,指加利福尼亚州北部索诺玛县(Sonoma County)。 2 系统重要更新 2.1 将小组件添加到桌面 速览提醒事项和临近日程等。按住Control键点…...

C++17中头文件filesystem的使用

C17引入了std::filesystem库(文件系统库, filesystem library),相关类及函数的声明在头文件filesystem中,命名空间为std::filesystem。 1.path类:文件路径相关操作,如指定的路径是否存在等,其介绍参见:http…...

「专题速递」数字人直播带货、传统行业数字化升级、远程协作中的低延时视频、地产物业中的通讯终端...

音视频技术作为企业数字化转型的核心要素之一,已在各行各业展现出广泛的应用和卓越的价值。实时通信、社交互动、高清视频等技术不仅令传统行业焕发新生,还为其在生产、管理、服务提供与维护等各个领域带来了巨大的助力,实现了生产效率和服务…...

PE格式之PE头部

1. PE头部总体组成 2. DOS MZ头 3. PE头 PE头由3部分组成: 下面分别: OptionalHeader比较大: 然后是节表, 节表有多个: PE文件头部就结束了, 最后就是节区了, 来看几段代码: ; main.asm .586 .model flat, stdcall option casemap:noneinclude windows.inc include ke…...

SLAM从入门到精通(用python实现机器人运动控制)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 在ROS下面,开发的方法很多,可以是c,可以是python。大部分接口操作类的应用,其实都可以用python来开…...

接口和抽象类有什么区别?

接口和抽象类都是用于实现抽象类型的机制: 抽象类:抽象类可以包含抽象方法(未实现的方法)和具体方法(已实现的方法)。抽象类可以有字段(成员变量),这些字段可以是具体的,也可以是抽象的。一个类只能继承一个抽象类,Java不支持多继承。抽象类可以拥有构造方法,用于初…...

凡科企业邮箱/百度seo引流怎么做

HTTP(十一):数字证书那些事其实这一段时间一直在酝酿这写一些关于数字证书的知识。但是这一块的知识真的是比较杂,因为现在互联网上的证书种类非常的多,压根就没有一个统一的标准。真是公说公有理,婆说婆有…...

重庆网站建设公司销售/seo外包网络公司

返回上级目录:iOS面试专题一 文章目录0.下面的说法只是针对oc,swift中没有__block0.1 swift闭包的底层原理1.什么情况下需要使用__block2.笔试题的坑:对被截获变量赋值才需要__block3.那些变量需要__block,那些不需要4.笔试题0.下面的说法只是针对oc,swift中没有__b…...

wordpress畅言插件/自媒体怎么入门

小程序赛道要逆天了,继微信小程序,百度小程序,支付宝小程序,头条小程序,360PC小程序之后,中国移动宣布也将进入小程序赛道,推出短信小程序,覆盖生活吃穿住行所有场景! 了解到&#x…...

ug编程培训/苏州seo排名公司

最近给redhat7.1挂载ntfs文件系统时失败了好几次,提示是没有安装C贬义环境,然后安装了gcc,就成功挂载了,下面是详细步骤[rootfoundation59 Desktop]# fdisk -l ###查看所有磁盘信息Disk /dev/sdb: 750.2 GB, 750156374016 bytes,…...

麻城做网站/免费刷粉网站推广免费

微信公众号“中学数学教与学”教师群公告微信QQ教师群入群方式及介绍高中数学教与学★教师QQ群【324623715】初中数学教与学★教师QQ群【460287009】中学数学教与学★学生QQ群【837494287】本文作者,David Matthews,《自然》特约作者。翻译作者&#xff…...

水果电商网站建设相关文献/搜索引擎优化服务公司哪家好

React是个啥 React 是一个用于构建用户界面的 JAVASCRIPT 库。 React主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)。 React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。 …...