Excel导入数据库,并显示在Qt Designer设计的界面中的QTableWidget

Excel导入数据库

参考链接

读取MySQL并显示在QTableWidget

参考链接

class WindowLogic(QMainWindow, uiData):
    def __init__(self):
        super(WindowLogic, self).__init__()
        self.setupUi(self)
        self.run()

    '''设置按钮逻辑操作'''
    def run(self):
        self.return_pushButton.clicked.connect(self.returnWindow)  # 返回上一级菜单
        self.connect_database_pushButton.clicked.connect(self.connectDatabase_)  # 连接数据库
        self._translate = QtCore.QCoreApplication.translate

    '''连接数据库函数'''
    def Table_Data(self, i, j, data):
        item = QtWidgets.QTableWidgetItem()
        self.tableWidget.setItem(i, j, item)
        item = self.tableWidget.item(i, j)
        item.setText(self._translate("Form", str(data)))
    def connectDatabase_(self):
        # 获取数据库登录信息
        HostName = self.host_name_lineEdit.text()  # 获取主机名称
        Port = self.port_lineEdit.text()  # 获取端口名称
        UserName = self.user_name_lineEdit.text()  # 获取用户名
        PassWd = self.pwd_lineEdit.text()  # 获取密码
        DatabaseName = self.database_name_lineEdit.text()  # 获取数据库名称
        # 连接数据库
        db = DatabaseOperations.dataImport_get_conn(HostName, int(Port), UserName, PassWd, DatabaseName)
        '''读取数据库数据'''
        cursor = db.cursor()  # 创建游标
        cursor.execute('SELECT * FROM data')  # 查询数据库
        data = cursor.fetchall()  # 获取查询结果
        print("数据查询成功")
        
        col_result = cursor.description
        self.row = cursor.rowcount  # 取得记录个数,用于设置表格的行数
        self.vol = len(data[0])  # 取得字段数,用于设置表格的列数
        col_result = list(col_result)

        # 在使用QTableWidget之前,设置正确的行数和列数
        self.tableWidget.setRowCount(self.row)
        self.tableWidget.setColumnCount(self.vol)  # 假设所有行的列数相同,可以根据实际情况修改
        a = 0
        for i in col_result:  # 设置表头信息,将mysql数据表中的表头信息拿出来,放进TableWidget中
            item = QtWidgets.QTableWidgetItem()
            self.data_tableWidget.setHorizontalHeaderItem(a, item)
            item = self.data_tableWidget.horizontalHeaderItem(a)
            item.setText(self._translate("Form", i[0]))
            a = a + 1

        total = list(data)  # 将数据格式改为列表形式,其是将数据库中取出的数据整体改为列表形式
        for i in range(len(data)):  # 将相关的数据
            total[i] = list(data[i])  # 将获取的数据转为列表形式
        for i in range(self.row):
            for j in range(self.vol):
                self.Table_Data(i, j, total[i][j])
        # 关闭数据库
        DatabaseOperations.close_conn(db, cursor)

实现右侧下侧滑动条来控制数据显示

在这里插入图片描述

class MainWindowLogic(QMainWindow, uiDataQuery):
    def __init__(self):
        super(MainWindowLogic, self).__init__()
        self.setupUi(self)
        self.Scrollbar()
        self.run()
    '''滚轮滑动'''
    def Scrollbar(self):
        # Set the horizontal scrollbar to the QTableWidget
        self.tableWidget.setHorizontalScrollBar(self.horizontalScrollBar)

        # Set the vertical scrollbar to the QTableWidget
        self.tableWidget.setVerticalScrollBar(self.verticalScrollBar)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值