#新人福利#

def User_toMysql(self):
    # 选择导入文件
    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, "友情提示:", "请选择需要导入的文件!")

演示图片:

数据库批量导入工具(python、QTdesigner)_数据库批量导入工具