PyQt操作EXCEL

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
import xdrlib ,sys
import xlrd
import re
import xlrd
worksheet = xlrd.open_workbook('2018.xlsx')   #打开excel文件
sheet_names= worksheet.sheet_names()    #获取excel中所有工作表名
sheet2 = worksheet.sheet_by_name('2007测试表')    #根据Sheet名获取数据
sheet2 = worksheet.sheet_by_index(0)     #根据索引获取数据,索引为0开始,1表示获取第二张工作表数据
#获取行数和列数
nrows = sheet2.nrows - 1
ncols = sheet2.ncols
print('行数',nrows)
print('列数',ncols)

rows = sheet2.row_values(1)   #表示获取Sheet2中第2行数据
print('获取Sheet2中第2行数据',rows)

cols10 = sheet2.col_values(2)   #表示获取Sheet2中第3列数据(数据保存为list)
print('获取Sheet2中第3列数据',cols10)
cell=sheet2.cell(0,1)   #表示获取Sheet2中(0,1)单元格的数据(数据保存为list)
print('获取Sheet2中(0,1)单元格的数据',cell)
#2007测试表 4 4
print (sheet2.name,sheet2.nrows,sheet2.ncols)
#print (sheet2.cell(1,0).value.encode('utf-8'))  

print ('ctype=',sheet2.cell(1,0).ctype)

print('获取单元格A1值',sheet2.cell(1,1).value)  #获取单元格A1值,column与row依然可用
        
for i in range(1,5,1):
    print(sheet2.cell(i,1).value) #更加方便实用
    c=sheet2.cell(i,1).value
    print(c)
    if c.find('22.3'):
        print("没有找到所需要的数")
    else:
        print("找到所需要的数")
        A=sheet2.cell(i,0).value
        print(sheet2.cell(i,0).value)
        B=sheet2.cell(i,1).value
        print(sheet2.cell(i,1).value)
        C=sheet2.cell(i,2).value
        print(sheet2.cell(i,2).value)
        D=sheet2.cell(i,3).value
        print(sheet2.cell(i,3).value)
        print("HAHAHAHAHAHAHAHAHA")
        
class MyTable(QTableWidget):
    def __init__(self,parent=None):
        super(MyTable, self).__init__(parent)
        self.setWindowTitle("北京微电子技术研究所技术支持库")
        self.setWindowIcon(QIcon("male.png"))
        self.resize(1380, 480)
        self.setColumnCount(7)
        self.setRowCount(4)
        #设置表格有两行五列。
        self.setColumnWidth(0, 200)
        self.setColumnWidth(4, 200)
        self.setRowHeight(0, 100)
        #设置第一行高度为100px,第一列宽度为200px。
        self.table()

    def table(self):
        self.setItem(0,0,QTableWidgetItem("名称"))
        self.setItem(0,1,QTableWidgetItem("价格"))
        self.setItem(0,2,QTableWidgetItem("出版社"))
        self.setItem(0,3, QTableWidgetItem("语言"))
        self.setItem(0,4,QTableWidgetItem("日期"))
        self.setItem(0,5, QTableWidgetItem("职业"))
        #self.setItem(0,4, QTableWidgetItem("收入"))
        #添加表格的文字内容.
        self.setHorizontalHeaderLabels(["第一行", "第二行", "第三行", "第四行","第五行", "第六行","第七行"])
        self.setVerticalHeaderLabels(["第一列", "第二列","第三列", "第四列"])
        #设置表头
        lbp = QLabel()
        lbp.setPixmap(QPixmap("Maley.png"))
        #在表中添加一张图片
        #self.setCellWidget(1,1,lbp)
      
        
        twi = QTableWidgetItem(A)
        twi.setFont(QFont("Times", 10, ))
        self.setItem(1,0,twi)
        
        twj = QTableWidgetItem(B)
        twj.setFont(QFont("Times", 10, ))
        self.setItem(1,1,twj)
        
        twk = QTableWidgetItem(C)
        twk.setFont(QFont("Times", 10, ))
        self.setItem(1,2,twk)
        
        twl = QTableWidgetItem(D)
        twl.setFont(QFont("Times", 10, ))
        self.setItem(1,3,twl)
        
        #添加一个自己设置了大小和类型的文字。
        dte = QDateTimeEdit()
        dte.setDateTime(QDateTime.currentDateTime())
        dte.setDisplayFormat("yyyy/MM/dd")
        dte.setCalendarPopup(True)
        self.setCellWidget(1,4,dte)
        #添加一个弹出的日期选择,设置默认值为当前日期,显示格式为年月日。
        cbw = QComboBox()
        cbw.addItem("医生")
        cbw.addItem("老师")
        cbw.addItem("律师")
        self.setCellWidget(1,5,cbw)
        #添加了一个下拉选择框
        sb = QSpinBox()
        sb.setRange(1000,10000)
        sb.setValue(5000)#设置最开始显示的数字
        sb.setDisplayIntegerBase(10)#这个是显示数字的进制,默认是十进制。
        sb.setSuffix("元")#设置后辍
        sb.setPrefix("RMB: ")#设置前辍
        sb.setSingleStep(100)
        self.setCellWidget(1,6,sb)
        
    def open_excel(file= '2018.xlsx'):
        try:
            data = xlrd.open_workbook(file)
            return data
        except Exception as e:
            print (str(e))
    def excel_table_byname(file= '2018.xlsx',colnameindex=0,by_name=u'2007测试表'):
        data = open_excel(file)
        table = data.sheet_by_name(by_name)
        nrows = table.nrows #行数 
        colnames =  table.row_values(colnameindex) #某一行数据 
        list =[]
        for rownum in range(1,nrows):
             row = table.row_values(rownum)
             if row:
                 app = {}
                 for i in range(len(colnames)):
                    app[colnames[i]] = row[i]
                 list.append(app)
        return list
if __name__ == '__main__':
    app = QApplication(sys.argv)
    myTable = MyTable()
    myTable.show()
    app.exit(app.exec_())

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt是一个用于创建图形用户界面(GUI)的Python库,而Excel是一种电子表格软件。通过PyQt可以实现Excel文件的读取和操作。可以使用PyQt的QMessageBox类来创建弹出提示框,可以使用QLabel来显示图片。在开发Excel小工具时,可以使用openpyxl和xlwings库来操作Excel文件,使用tkinter库来创建GUI界面。具体的功能包括提取Excel表中的目标信息,以指定格式生成目标表信息,以及对Excel文件进行增删改查等操作。可以使用QtDesigner来设计GUI界面,使用QTableWidget来显示表格数据,使用QFileDialog来打开文件选择框。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [一文小入门pyQt5 —— 从零到一完成一个Excel文件处理程序](https://blog.csdn.net/qq_42868846/article/details/122494476)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [python+PyQt5 Excel小工具开发](https://blog.csdn.net/weixin_42168040/article/details/128904245)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值