Re: [问题] 如何用Pyqt去搜寻excel内特定区块的数值

楼主: nsay (心乱不已。停留着)   2023-01-30 23:30:09
这几天翻了自己的小小专案工具
以前花了两个月闲余学的东西,只花了2天就结束了
突然很想分享一下
利用你的问题来说明我的方式
首先我们应该先处理逻辑问题
学生资料应该可以用dict(字典来表示)
Students = { A: {day1:[a,b,c,d],day2:[c,d]},B:{day....
所以我们要来读取excel然后取得相关的资料再组合
第一个选单从
column 1取得有几个学员
第二个选单从
column 2针对每个学员的row范围取得有几个资料并获得相对应的row
第三个选单从
column 3及学员row范围取得内容
所以我们可以分析成下面这样#我都当你表格非常的整齐标准有逻辑
stundents = {}
student = ""
for row_k in row(1....MaxRow):
#第一个选单的判断
if row_k != 空白: #代表有学生名称
student = 资料
studnets[student] = {}#创建一个学生字典
if row_k = 空白:#那就代表可能这行row是资料
if colunm2(row_k) != 空白: #代表row有资料
stundents[student][colunm2(row_k)] = [] 创建天数listOB
for column_k in column(3...MaxColumn)
if column_k !=空白:
break
stundents[student][colunm2(row_k)].append(column_k)
这样读取完整个EXCEL表
应该就可以将你的资料建立好students字典
所以重点来了
读取excel是个问题,前面有提到我翻整个小专案只花了三天
我原本用TK刻的UI实在是问题多多,也转进PQty
请先参考前面大大分享的文章
https://ithelp.ithome.com.tw/users/20120424/ironman/4879
先用QtDesign建立好想要的UI
然后....请打开https://chat.openai.com/
记得第一句话问 "我有一些python的问题" !!这很重要
先从EXCEL读取开始问
"我有一个EXCEL表,我要怎样知到最大的column跟row的编号"
这时候你就知道前面的最大值该怎样读取了
然后继续问
"那我想要借由row的最大值遍历某个column该怎样处理"
前面如何遍历学生范围他就给你答案了
把前面资料建立的问题都问完后
剩下就是怎样附值给你用QtDesign建立的下拉表 (QCombox)
students.keys() 就是学生的清单
student[key].keys() 就是该学生的day
student[key][key] 就是该学生day的资料清单
这时候 就直接问他要怎样将list设定给QCombox以及取得选择值
https://github.com/Saxo0213/readexceldata
当然还有一些实作时候会有的问题通通拿去问~~
ChatGPT真的好棒
我本职不是程式方面的,这种小问题问版上大神们实在太浪费了
交给AI就好了(大误
还可以减少非常多的技术文件查询时间,不用吗?
**QtDesign使用小技巧
创建的ui档转PY可以写个批次档执行指令,这样就可以边改边设计
※ 引述《ninifs (快快乐乐过每天 !)》之铭言:
: 请教各位大大,
: 小弟刚学会一些基本的python和openpyxl操作,
: 也有时候也会用Pyqt写成一个小接口帮助自己工作效率,
: 目前遇到困难是工作上想实作以下操作,希望有高手帮忙指引一下!
: excel内的数据如最下面,
: 主要是有多个学员资料(至少100个,学员A,B,C,D......)
: 每个学员有一个区块的资料,
: 每一个区块的rows和columns数量不固定,
: (就是表格内的 "day"和"内容"数量不固定)
: 希望能用Pyqt的接口,做出三个下拉选单,
: 第一个下拉选单可以选 => 学员A,学员B,学员C...etc
: 第二个下拉选单可以选 => day1,day2,day3...etc
: 第三个下拉选单可以选 => 内容1,内容2,内容3...etc
: 这样就可以定位到某一个cell,然后回报数值
: 可是我第一步就卡住了,
: 若第一个下拉选单选了 "学员B",
: 我该怎么让程式在接下来的动作中,
: 只会去寻找"学员B"那个区块里面的东西 ?(因为那个区块的大小不固定...@@)
: 先谢谢各位大神了!
: ===========example=================
: 学员A
: 内容1 内容2 内容3
: day1 23 12 65
: day2 14 23 42
: day3 5 21 654
: day4 16 5 879
: day5 86 435 433
: 学员B
: 内容1 内容2 内容3 内容4 内容5
: day1 23 12 65 85 67
: day2 14 23 42 883 67
: day3 5 21 654 13 98
: 学员C
: 内容1 内容2
: day1 23 12
: day2 14 23
: day3 5 21
: day4 16 5
: day5 86 435
: day6 123 23
: day7 79 64
作者: ninifs (快快乐乐过每天 !)   2023-02-11 21:33:00
太厉害了,笔记ing...小的受教了

Links booklink

Contact Us: admin [ a t ] ucptt.com