一、前置准备
本方案采用轻量开源技术栈搭建,无需付费、无需专业后端开发经验,所有工具均可免费获取,满足日常行政审批档案的录入、查询、归档、导出全流程需求,具体所需资源如下:
- Python 3.10 安装包:直接下载地址https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe
- 3个开源依赖包,后续通过命令一键安装
二、环境搭建实操
1. 安装Python
双击下载好的安装包,必须勾选界面最下方的「Add Python 3.10 to PATH」选项,这是90%新手卡壳的关键步骤,勾选后点击「Install Now」等待安装完成。安装完成后按下Win+R输入cmd回车,在命令窗口输入python --version,输出版本号即为安装成功。
2. 一键安装依赖包
在打开的cmd窗口中,直接复制执行以下命令(国内用户用清华源,速度远快于默认源):
```
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple streamlit pandas openpyxl
```
等待所有包安装完成,没有报错即为成功,若出现权限错误,关闭cmd后重新以管理员身份打开执行即可。
三、项目初始化与代码编写
1. 初始化项目文件夹
在电脑任意磁盘新建文件夹,命名为approval-archive,在文件夹内新建空白文本文档,重命名为app.py(注意后缀名从txt改成py,若电脑不显示后缀名,打开文件夹顶部的「查看」选项,勾选「文件扩展名」即可修改)。
2. 复制完整核心代码
打开app.py,直接复制以下完整代码,无需修改即可使用,若需要调整档案分类,可修改代码中archive_categories列表的内容:
```python
import streamlit as st
import sqlite3
import pandas as pd
初始化数据库,自动创建单文件数据库
conn = sqlite3.connect('archive.db', check_same_thread=False)
c = conn.cursor()
创建档案表
c.execute('''CREATE TABLE IF NOT EXISTS approval_archive
(id INTEGER PRIMARY KEY AUTOINCREMENT,
doc_no TEXT NOT NULL,
approval_item TEXT NOT NULL,
applicant TEXT NOT NULL,
approval_date TEXT NOT NULL,
archivist TEXT NOT NULL,
category TEXT NOT NULL,
remark TEXT)''')
conn.commit()
页面配置
st.set_page_config(page_title="行政审批档案管理系统", layout="wide")
st.title("行政审批档案管理软件")
档案分类,可根据本单位需求自行增删修改
archive_categories = ["行政许可", "公共服务", "行政处罚", "行政确认", "其他审批"]
侧边栏功能菜单
menu = st.sidebar.selectbox("功能菜单", ["档案录入", "档案查询", "导出档案"])
if menu == "档案录入":
st.subheader("新增行政审批档案")
with st.form("add_archive_form"):
col1, col2 = st.columns(2)
with col1:
doc_no = st.text_input("档案文号 ")
approval_item = st.text_input("审批事项名称 ")
applicant = st.text_input("申请人/申请单位")
approval_date = st.date_input("审批日期")
with col2:
archivist = st.text_input("归档人")
category = st.selectbox("档案分类", archive_categories)
remark = st.text_area("备注信息")
submitted = st.form_submit_button("提交归档")
if submitted:
if not doc_no or not approval_item:
st.error("档案文号和审批事项为必填项,请补充后提交")
else:
c.execute("INSERT INTO approval_archive (doc_no, approval_item, applicant, approval_date, archivist, category, remark) VALUES (?,?,?,?,?,?,?)",
(doc_no, approval_item, applicant, str(approval_date), archivist, category, remark))
conn.commit()
st.success("档案归档成功")
elif menu == "档案查询":
st.subheader("查询行政审批档案")
col1, col2, col3 = st.columns(3)
with col1:
search_category = st.selectbox("按分类筛选", ["全部"] + archive_categories)
with col2:
search_keyword = st.text_input("关键词搜索(支持文号/申请人模糊搜索)")
with col3:
search_btn = st.button("查询档案")
if search_btn:
if search_category == "全部":
sql = "SELECT FROM approval_archive WHERE doc_no LIKE ? OR applicant LIKE ?"
params = (f"%{search_keyword}%", f"%{search_keyword}%")
else:
sql = "SELECT FROM approval_archive WHERE category = ? AND (doc_no LIKE ? OR applicant LIKE ?)"
params = (search_category, f"%{search_keyword}%", f"%{search_keyword}%")
result_df = pd.read_sql(sql, conn, params=params)
st.dataframe(result_df, use_container_width=True)
elif menu == "导出档案":
st.subheader("导出全部档案为Excel")
export_btn = st.button("生成导出文件")
if export_btn:
all_df = pd.read_sql("SELECT FROM approval_archive", conn)
all_df.to_excel("approval_archive_export.xlsx", index=False)
with open("approval_archive_export.xlsx", "rb") as f:
st.download_button(label="点击下载Excel档案", data=f, file_name="行政审批档案导出.xlsx", mime="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
```
四、启动与内网部署实操
1. 本地启动使用

打开cmd窗口,输入命令切换到项目目录,示例:如果你的项目放在D盘根目录,命令为:cd D:\approval-archive,切换完成后执行启动命令:
```
streamlit run app.py
```
执行完成后会自动弹出浏览器窗口,打开默认地址http://localhost:8501即可正常使用所有功能。
2. 单位内网共享部署
如果需要单位内多个同事同时访问,启动时执行以下命令即可:
```
streamlit run app.py --server.address 0.0.0.0 --server.port 80
```
执行完成后,其他同事在浏览器输入你这台电脑的内网IP地址即可访问,查看内网IP的方法:在cmd输入ipconfig,输出结果中的IPv4地址就是你的内网IP。
五、日常维护与数据备份实操
本软件采用SQLite单文件存储,所有档案数据都保存在项目文件夹的archive.db文件中,维护非常简单,没有复杂操作:
- 数据备份:退出软件后,直接复制
archive.db文件到U盘或者云盘即可完成备份,无需额外工具
- 数据恢复:更换电脑或者数据损坏后,将备份的
archive.db文件复制到新项目文件夹,替换原有文件即可恢复全部数据
- 容量说明:单文件可稳定存储10万+条行政审批档案,完全满足普通区县一级行政审批部门的使用需求,无需额外扩容优化。
按照以上步骤操作,全程不超过30分钟即可完成搭建,所有功能开箱即用,满足日常行政审批档案管理的核心需求。