def show_em(self): # 首先获取实际行数 mm = Mysql_manager() with mm: result = mm.db_show() # 返回二维元组 # 显示控件已经建立,现在建立数据模型 self.model = QtGui.QStandardItemModel(mm.cur.rowcount, 4) self.title = ['姓名', '部门', 'IP地址', 'MAC地址'] self.model.setHorizontalHeaderLabels(self.title) # self.tableView.verticalHeader().setSectionResizeMode(QHeaderView.Stretch) # 垂直拉伸铺满 self.tableView.setModel(self.model) # 将控件和模型进行关联 num = 0 for i in result: item0 = QtGui.QStandardItem(i[0]) # 获取到的是姓名 item1 = QtGui.QStandardItem(i[1]) item2 = QtGui.QStandardItem(i[2]) item3 = QtGui.QStandardItem(i[3]) # 将数据显示到对应位置 self.model.setItem(num, 0, item0) # num行 0列,数值 self.model.setItem(num, 1, item1) self.model.setItem(num, 2, item2) self.model.setItem(num, 3, item3) num += 1
def export_excel(self,path): self.wb = Workbook() self.ws = self.wb.active # 先输出表头 self.ws.cell(row = 1,column = 1).value = '姓名' self.ws.cell(row = 1,column = 2).value = '部门' self.ws.cell(row = 1,column = 3).value = 'IP地址' self.ws.cell(row = 1,column = 4).value = 'MAC地址' mm = Mysql_manager() with mm: result = mm.db_show() num = 2 # 计数递增使用 for i in result: self.ws.cell(row = num,column = 1).value = i[0] self.ws.cell(row = num,column = 2).value = i[1] self.ws.cell(row = num,column = 3).value = i[2] self.ws.cell(row = num,column = 4).value = i[3] num += 1 #最后记得需要保存 print(f'数据成功导出到{path}') self.wb.save(path)