# 选择导入文件
global role_code
filepath, _ = QFileDialog.getOpenFileName(self, "选择新建人员文件")
if filepath:
share.set_value("filepath", filepath)
self.displayed_text = filepath
# 如果成功选择文件,则将其路径显示在QLineEdit中
self.ui.textEdit.setText(self.displayed_text)
QtWidgets.QMessageBox.warning(self, "友情提示:", "不要搞错需要导入文件吆!")
df = pd.read_excel(filepath)
# 记录所有的错误消息
error_msgs = []
# 遍历Excel表格中的每一行数据
row_count = len(df.index) # Excel 表格中的总行数
# 遍历Excel表格中的每一行数据,计算当前的进度值
for row_index, row in enumerate(df.itertuples()):
# 计算当前的进度值
# 更新进度条小部件,显示当前进度值
# progress_value = int(row_index / row_count * 100)
# # 将进度值设置为进度条的值
# self.ui.jinduBar.setValue(progress_value)
# 使用字符串的 .strip() 方法删除列中每个元素的前导和尾随空格,并使用 .replace() 方法将其中的回车替换为空字符串
org_name = row[3].strip().replace('\n', '')
nick_name = row[5].strip().replace('\n', '')
user_name = str(row[6]).strip().replace('\n', '')
if pd.isna(user_name):
continue
# 数据校验组织架构中的班组信息
org_sql = f'SELECT id FROM org where name = "{org_name}"'
self.cur.execute(org_sql)
org_id = self.cur.fetchone()
if org_id is None:
error_msgs.append(f"第{row.Index + 2}行:'{org_name}' 人员所属班组有误,请检查组织架构中是否有该班组信息!")
if len(error_msgs) > 0:
result_msg = '\n'.join(error_msgs)
text = self.ui.textEdit.toPlainText()
# 两者拼接,共同展示
self.ui.textEdit.setText(str(text + '\n' + result_msg))
QtWidgets.QMessageBox.warning(self, "友情提示:", "请修正人员所属班组!")
···················
self.cur.executemany(ino_sql, [item[1] for item in sql_list if item[0] == ino_sql])
self.cur.executemany(inr_sql, [item[1] for item in sql_list if item[0] == inr_sql])
self.conn.commit()
result_msg = '\n'.join(error_msgs)
user_id_str = ', '.join(str(x) for x in user_ids)
text = self.ui.textEdit.toPlainText()
# 三者拼接,共同展示
self.ui.textEdit.setText(f"{text}\n\n新插入的 user_id: {user_id_str}\n\n{result_msg}")
# 手动将进度条的进度值设置为最大值,即 100
self.ui.jinduBar.setValue(100)
return True
except Exception as e:
print(e)
self.conn.rollback()
return False
else:
QtWidgets.QMessageBox.warning(self, "友情提示:", "请选择需要导入的文件!")lol