使用python+QTdesigner做的数据库批量导入的小工具

查看 62|回复 2
作者:Allenxu520   
最近做了个数据库导入的小工具,傻瓜式操作,有需要的吗?有的话,给个关注,私信我发给大家参考参考:[Python] 纯文本查看 复制代码    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, "友情提示:", "请选择需要导入的文件!")lol

班组, 进度

SYSTEM316   

支持一下,想要捏。
lcg2014   

发个源码吧,谢谢
您需要登录后才可以回帖 登录 | 立即注册

返回顶部