def show_query1_result(self): # 查询数据 db = pymysql.connect(host='39.99.214.172', user='root', password='Solotion.123', db='jj_tset') cursor = db.cursor() db_sql = """ """ cursor.execute(db_sql) result = cursor.fetchall() db.close() if len(result) == 0: QMessageBox.information(self, "提示", "今日无员工工资记录") return # 清空表格 self.query1_window.table_widget.setRowCount(0) self.query1_window.table_widget.setColumnCount(len(result[0])) self.query1_window.table_widget.setHorizontalHeaderLabels( ["员工ID", "员工姓名", "日期", "领取鸡爪重量(KG)", "效率(每小时KG)", "出成率", "基础工资", "重量奖励", "当日总工资"]) # 添加数据到表格 for row_num, row_data in enumerate(result): self.query1_window.table_widget.insertRow(row_num) for col_num, col_data in enumerate(row_data): self.query1_window.table_widget.setItem(row_num, col_num, QTableWidgetItem(str(col_data))) # 显示窗口 self.query1_window.show()怎么根据输入ID展现数据并且有下载按钮可以下载展现的数据
时间: 2023-07-16 17:17:21 浏览: 102
你可以在这段代码中添加一个 QLineEdit 组件,用于输入员工的 ID。然后,在查询数据时,可以根据输入的 ID 进行筛选,只显示对应员工的数据。
为了添加下载按钮,你可以在 UI 界面上添加一个 QPushButton 组件,并将其命名为 download_button。然后,在 show_query1_result 函数中,连接 download_button 的 clicked 信号到一个新的函数 on_download_button_clicked。在这个新函数中,你可以实现将当前展示的表格数据导出为 CSV 或 Excel 文件,提供给用户下载。
下面是修改后的代码示例:
```python
from PyQt5.QtWidgets import QLineEdit, QPushButton, QFileDialog
import pandas as pd
...
def show_query1_result(self):
# 获取输入的员工 ID
employee_id = self.query1_window.id_input.text()
# 构造查询 SQL
db_sql = f"""
SELECT *
FROM jj_tset
WHERE 员工ID={employee_id}
"""
...
def on_download_button_clicked(self):
# 获取当前展示的表格数据
table_data = []
for row in range(self.query1_window.table_widget.rowCount()):
row_data = []
for col in range(self.query1_window.table_widget.columnCount()):
item = self.query1_window.table_widget.item(row, col)
row_data.append(item.text() if item is not None else "")
table_data.append(row_data)
# 将数据转换为 DataFrame
df = pd.DataFrame(table_data, columns=[
"员工ID", "员工姓名", "日期", "领取鸡爪重量(KG)",
"效率(每小时KG)", "出成率", "基础工资", "重量奖励", "当日总工资"
])
# 弹出文件保存对话框,让用户选择保存路径
file_path, _ = QFileDialog.getSaveFileName(
None, "选择保存路径", ".", "CSV 文件 (*.csv);;Excel 文件 (*.xlsx)"
)
if file_path:
# 根据文件类型导出数据
if file_path.endswith(".csv"):
df.to_csv(file_path, index=False)
elif file_path.endswith(".xlsx"):
df.to_excel(file_path, index=False)
```
注意,在这段代码中,我们使用了 pandas 库将表格数据转换为 DataFrame,这样可以方便地将数据导出为 CSV 或 Excel 文件。同时,我们也使用了 QFileDialog 组件,让用户选择保存文件的路径和格式。
阅读全文