Pyqt:由excel导入数据去tablewidget

从excel中导入数据到tablewidget
main.py
import sys
from PyQt5.QtWidgets import *
 
from PyQt5.QtGui import *
import readExcel
class main_widget(QWidget):  # 继承自 QWidget类
    def __init__(self):
        super().__init__()
        self.initUI()  # 创建窗口

    def initUI(self):  
        # 在此处添加 窗口控件
        self.setGeometry(200, 300, 1000, 600)  # 屏幕上坐标(x, y), 和 窗口大小(宽,高)
        self.setWindowTitle("电子BOM表辅助工具")
        hbox = QHBoxLayout(self)#创建布局,可以让控件随着窗口的改变而改变
        self.onewidget = QFrame()#创建一个QFrame窗口。Qwidget也可以
        self.tableWidget3 = QTableWidget(1, 7)#创建一个表格tablewidget
        #创建表头
        self.tableWidget3.setHorizontalHeaderLabels(
            ['品名', 'SR P/N', 'MPN', '规格型号描述', '品牌(MFG)', 'RD窗口', '备注'])
        #禁止编辑
        self.tableWidget3.setEditTriggers(QAbstractItemView.NoEditTriggers)
        #添加tableWidget去hbox中
        hbox.addWidget(self.tableWidget3)
        self.setLayout(hbox)
        readExcel.read_excel(self.tableWidget3)
        self.show()


if __name__ == "__main__":
    app = QApplication(sys.argv)
    path = '/Users/sr00117/Desktop/GUI/images/cat_597px_1221818_easyicon.net.png'
    app.setWindowIcon(QIcon(path))  # MAC 下 程序图标是显示在程序坞中的, 切记;
    window = main_widget()
    sys.exit(app.exec_())

readExcel.py

 

import xlrd
from PyQt5.QtWidgets import *
def read_excel(tableWidget3):
    # 打开文件
    workbook = xlrd.open_workbook('/Users/sr00117/Desktop/编码总表.xlsx')
    # 获取所有sheet
    #sheet2_name = workbook.sheet_names()[0]
    # 根据sheet索引或者名称获取sheet内容
    sheet1 = workbook.sheet_by_index(0) # sheet索引从0开始
    cols = sheet1.col_values(1)  # 获取第三列内容 品名
    # 获取整行和整列的值(数组)
    for i in range(4,len(cols)):
        rowslist = sheet1.row_values(i) # 获取excel每行内容
        for j in range(len(rowslist)):
            #在tablewidget中添加行
            row = tableWidget3.rowCount()
            tableWidget3.insertRow(row)
            #把数据写入tablewidget中
            newItem = QTableWidgetItem(rowslist[j])
            tableWidget3.setItem(i-4, j-1, newItem)

这个i-4,j-1,根据实际的表格行数来变化

ecxel

运行结果tablewidget

你可能感兴趣的:(Pyqt:由excel导入数据去tablewidget)