| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import sys
- from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLineEdit, QPushButton, QFileDialog, QMessageBox
- import pandas as pd
- import pymongo
- class FilePicker(QWidget):
- def __init__(self):
- super().__init__()
- self.initUI()
- def initUI(self):
- self.setWindowTitle('北大荒更改设备信息')
- self.setGeometry(600, 600, 400, 400)
- layout = QVBoxLayout()
- # 创建一个输入框和按钮
- self.filepath_edit = QLineEdit(self)
- layout.addWidget(self.filepath_edit)
- self.select_button = QPushButton('选择文件', self)
- self.select_button.clicked.connect(self.openFileDialog)
- layout.addWidget(self.select_button)
- self.setLayout(layout)
- def openFileDialog(self):
- # 打开文件对话框
- options = QFileDialog.Options()
- options |= QFileDialog.DontUseNativeDialog
- filename, _ = QFileDialog.getOpenFileName(self, "选择文件", "", "All Files (*);;Python Files (*.py)", options=options)
- if filename:
- myclient = pymongo.MongoClient("mongodb://{0}:{1}@10.5.64.238:57017/".format("root","yfkj2024"))
- db = myclient.smartfarming
- sa_device = db.sa_device
- self.filepath_edit.setText(filename)
- df = pd.read_excel(filename, sheet_name="北大荒ID记录表")
- df = df[["云飞ID", "北大荒ID", "农场简称"]]
- is_exist = 0
- for k in df.to_dict(orient='records'):
- yf_id = k["云飞ID"]
- bdh_id = k["北大荒ID"]
- farm_name = k["农场简称"]
- if "/" not in str(yf_id):
- update = sa_device.update_one(
- {"device_id":{"$regex": k["云飞ID"]}, "device_name": {"$eq": ""}},
- {"$set":{"device_name":k["农场简称"] + k["北大荒ID"]}}
- )
- print(update.modified_count)
- self.process_file(filename)
- def process_file(self, file_path):
- # 这里可以编写处理文件的逻辑,示例中简单打印文件路径
- print(f'选择的文件路径:{file_path}')
- # 处理完成后弹出消息框提示
- QMessageBox.information(self, '处理完成', '文件处理完成!')
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- ex = FilePicker()
- ex.show()
- sys.exit(app.exec_())
|