从零搭建可直接使用的上岗证书档案管理软件完整实操指南

前期准备

本指南搭建的是本地运行的轻量上岗证书档案软件,零成本、不需要联网,所有数据存储在个人设备中,全程操作不需要编程基础,跟着步骤操作就能直接落地使用,你只需要一台Windows系统电脑即可。

实操步骤

1. 安装Python运行环境

直接下载官方安装包:https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe,下载完成后打开安装程序,必须勾选「Add Python 3.10 to PATH」选项,再点击「Install Now」,等待安装完成即可。

安装完成后验证:按下Win+R键输入cmd回车,打开命令提示符窗口,输入python --version,回车后输出版本号「Python 3.10.11」说明安装成功。如果提示「不是内部或外部命令」,说明未勾选PATH选项,卸载后重新安装即可。

2. 创建软件文件

在电脑任意位置新建一个文件夹,命名为cert_manage,打开该文件夹,右键新建文本文档,把文件名和后缀改成main.py,系统提示修改后缀时选择「是」。

右键点击main.py,选择用记事本打开,把以下完整代码复制粘贴进去,保存关闭即可:

``` import sqlite3 import PySimpleGUI as sg import openpyxl from datetime import datetime 初始化数据库 db = sqlite3.connect('cert_db.db') cursor = db.cursor() cursor.execute('''CREATE TABLE IF NOT EXISTS certs (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, cert_name TEXT NOT NULL, cert_no TEXT UNIQUE NOT NULL, issue_date TEXT NOT NULL, expire_date TEXT, create_time TEXT NOT NULL)''') db.commit() 界面布局 layout = [ [sg.Text('姓名'), sg.Input(key='name', size=(20,1)), sg.Text('证书编号'), sg.Input(key='cert_no', size=(20,1))], [sg.Text('证书名称'), sg.Input(key='cert_name', size=(43,1))], [sg.Text('发证日期'), sg.Input(key='issue_date', size=(15,1)), sg.Text('有效期'), sg.Input(key='expire_date', size=(15,1))], [sg.Button('新增保存'), sg.Button('搜索'), sg.Button('加载修改'), sg.Button('删除选中'), sg.Button('导出全部'), sg.Button('重置列表')], [sg.Table(values=[], headings=['ID','姓名','证书名称','证书编号','发证日期','有效期'], auto_size_columns=True, key='table', enable_events=True, select_mode=sg.TABLE_SELECT_MODE_BROWSE, size=(80, 10))] ] 创建窗口 window = sg.Window('上岗证书档案管理软件', layout, size=(850, 450)) 事件循环 while True: event, values = window.read() if event == sg.WIN_CLOSED: break 新增保存 if event == '新增保存': try: create_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S') cursor.execute('INSERT INTO certs (name, cert_name, cert_no, issue_date, expire_date, create_time) VALUES (?,?,?,?,?,?)', (values['name'].strip(), values['cert_name'].strip(), values['cert_no'].strip(), values['issue_date'].strip(), values['expire_date'].strip(), create_time)) db.commit() sg.popup('保存成功!') 清空输入框 for key in ['name','cert_name','cert_no','issue_date','expire_date']: window[key].update('') 刷新列表 cursor.execute('SELECT id, name, cert_name, cert_no, issue_date, expire_date FROM certs ORDER BY create_time DESC') data = cursor.fetchall() window['table'].update(values=data) except Exception as e: if 'UNIQUE constraint failed' in str(e): sg.popup_error('错误:该证书编号已经存在,禁止重复添加') else: sg.popup_error(f'保存失败:{str(e)}') 搜索档案 elif event == '搜索': keyword = f"%{values['name'].strip()}{values['cert_no'].strip()}%" cursor.execute('SELECT id, name, cert_name, cert_no, issue_date, expire_date FROM certs WHERE name LIKE ? OR cert_no LIKE ? ORDER BY create_time DESC', (keyword, keyword)) data = cursor.fetchall() window['table'].update(values=data) 导出全部档案 elif event == '导出全部': save_path = sg.popup_get_file('选择保存位置', save_as=True, default_extension='xlsx', file_types=(('Excel 文件', '.xlsx'),)) if not save_path: continue cursor.execute('SELECT id, name, cert_name, cert_no, issue_date, expire_date, create_time FROM certs ORDER BY create_time DESC') data = cursor.fetchall() wb = openpyxl.Workbook() ws = wb.active ws.append(['ID','姓名','证书名称','证书编号','发证日期','有效期','入库时间']) for row in data: ws.append(row) wb.save(save_path) sg.popup('导出成功!') 重置列表,清空搜索 elif event == '重置列表': for key in ['name','cert_name','cert_no','issue_date','expire_date']: window[key].update('') cursor.execute('SELECT id, name, cert_name, cert_no, issue_date, expire_date FROM certs ORDER BY create_time DESC') data = cursor.fetchall() window['table'].update(values=data) 加载选中档案到输入框修改 elif event == '加载修改' and values['table']: select_row = values['table'][0] row_data = window['table'].GetAllValues()[select_row] window['name'].update(row_data[1]) window['cert_name'].update(row_data[2]) window['cert_no'].update(row_data[3]) window['issue_date'].update(row_data[4]) window['expire_date'].update(row_data[5]) 删除选中档案 elif event == '删除选中' and values['table']: if sg.popup_yes_no('确认删除?删除后无法恢复') == 'Yes': select_row = values['table'][0] cert_id = window['table'].GetAllValues()[select_row][0] cursor.execute('DELETE FROM certs WHERE id = ?', (cert_id,)) db.commit() sg.popup('删除成功') cursor.execute('SELECT id, name, cert_name, cert_no, issue_date, expire_date FROM certs ORDER BY create_time DESC') data = cursor.fetchall() window['table'].update(values=data) db.close() window.close() ```

3. 安装依赖库

按下Win+R输入cmd回车打开命令提示符,输入以下命令切换到刚才新建的文件夹,比如你建在D盘根目录,命令就是:
cd D:\cert_manage

从零搭建可直接使用的上岗证书档案管理软件完整实操指南

然后执行以下命令安装依赖:

``` pip install pysimplegui==4.60.5 openpyxl==3.1.2 ```

等待下载安装完成,提示Successfully installed说明安装成功。

4. 启动软件使用

还是在当前命令窗口,输入以下命令启动软件:

``` python main.py ```

回车后会自动弹出软件窗口,第一次启动会自动创建档案数据库,不需要手动操作。常用操作说明:

  • 新增档案:填写姓名、证书名称、证书编号、发证日期、有效期,点击「新增保存」即可完成入库,系统自动防止证书编号重复
  • 查询档案:在姓名或证书编号输入框填写关键词,点击「搜索」即可筛选出对应档案
  • 修改档案:选中要修改的档案,点击「加载修改」,修改信息后重新点击「新增保存」即可(修改后不要改变证书编号,否则会提示重复)
  • 删除档案:选中要删除的档案,点击「删除选中」,确认后即可删除
  • 导出档案:点击「导出全部」,选择保存位置,即可导出所有档案为Excel表格,方便打印统计

常见问题排查

1. 双击main.py没反应怎么办?

这是Python关联错误,按照之前的步骤,用cmd命令启动即可,或者右键点击main.py,选择「打开方式」,选择Python,勾选「始终用此应用打开」即可。

2. 怎么备份数据?

所有档案数据都存在软件文件夹下的cert_db.db文件中,定期把这个文件复制到U盘或云盘,即可完成备份,更换电脑后把该文件放到新的软件文件夹下,就能恢复所有数据。

3. 启动提示缺少模块怎么办?

重新执行依赖安装命令即可,或者单独执行pip install 缺少的模块名,即可解决问题。

AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统