全程使用开源轻量工具,无需服务器,个人电脑即可完成,仅需3个基础步骤:
打开命令提示符(Windows按Win+R输cmd回车;Mac打开终端),输入以下命令按回车执行:
``` pip install streamlit pandas ```新建名为archive.csv的文本文件,写入以下完整内容(可直接复制):
``` 档案编号,标题,内容,分类,归档日期 1,研发项目预算报告,2024年AI项目全年预算明细及里程碑,项目文档,2024-01-10 2,员工劳动合同模板,市场部正式员工合规合同模板,人事文档,2023-12-05 3,会议纪要,2024年1季度产品复盘会记录,会议记录,2024-02-15 4,采购合同,服务器硬件采购框架协议,合同文档,2024-01-20 ```在桌面新建文件夹「档案系统」,进入后右键→新建→文本文档,改文件名成app.py(弹出后缀修改提示时选「是」)
用记事本打开app.py,复制以下全部代码并保存:
```python import streamlit as st import pandas as pd import sqlite3 初始化数据库表 def init_db(): conn = sqlite3.connect('archive.db') cursor = conn.cursor() cursor.execute(''' CREATE TABLE IF NOT EXISTS archive ( id INTEGER PRIMARY KEY AUTOINCREMENT, file_no TEXT UNIQUE, title TEXT, content TEXT, category TEXT, date TEXT ) ''') conn.commit() conn.close() 导入CSV数据到数据库 def import_csv_data(): df = pd.read_csv('archive.csv') conn = sqlite3.connect('archive.db') df.to_sql('archive', conn, if_exists='replace', index=False) conn.close() 模糊查询档案 def search_archive(keyword): conn = sqlite3.connect('archive.db') query = """ SELECT file_no, title, category, date FROM archive WHERE file_no LIKE ? OR title LIKE ? OR content LIKE ? OR category LIKE ? """ params = (f'%{keyword}%', f'%{keyword}%', f'%{keyword}%', f'%{keyword}%') result = pd.read_sql(query, conn, params=params) conn.close() return result 新增档案 def add_archive(file_no, title, content, category, date): try: conn = sqlite3.connect('archive.db') cursor = conn.cursor() cursor.execute(''' INSERT INTO archive (file_no, title, content, category, date) VALUES (?, ?, ?, ?, ?) ''', (file_no, title, content, category, date)) conn.commit() return True except sqlite3.IntegrityError: return False finally: conn.close() 主界面渲染 st.set_page_config(page_title="档案整理查询系统", layout="wide") st.title("档案整理查询系统") 初始化数据库并导入初始数据(首次运行执行,后续可注释) init_db() import_csv_data() 侧边栏功能选择 st.sidebar.header("功能操作") func = st.sidebar.radio("选择操作:", ["查询档案", "新增档案"]) 查询功能页面 if func == "查询档案": keyword = st.text_input("输入查询关键词(支持模糊匹配):") if keyword: res = search_archive(keyword) st.dataframe(res, use_container_width=True) if res.empty: st.info("未找到匹配的档案") 新增档案页面 else: with st.form("add_form"): file_no = st.text_input("档案编号(必填,不可重复)") title = st.text_input("档案标题(必填)") content = st.text_area("档案内容(必填)") category = st.selectbox("档案分类(必填)", ["项目文档", "人事文档", "会议记录", "合同文档", "其他"]) date = st.date_input("归档日期(必填)") submit = st.form_submit_button("提交新增") if submit: date_str = date.strftime('%Y-%m-%d') if add_archive(file_no, title, content, category, date_str): st.success("档案新增成功") else: st.error("新增失败:档案编号已存在") ```回到命令提示符/终端,进入「档案系统」文件夹,比如桌面路径输入:
``` cd Desktop/档案系统 ```
然后输入启动命令:
``` streamlit run app.py ```执行后会自动弹出浏览器窗口,显示软件主界面;若未自动弹出,手动访问地址:http://localhost:8501
将archive.csv替换为archive.xlsx,修改导入CSV的代码行:
```python df = pd.read_csv('archive.csv') ```改为
```python df = pd.read_excel('archive.xlsx') ```其余代码无需修改,直接生效
在查询页面的关键词输入框上方添加分类下拉选择,代码片段:
```python 添加在查询页面的keyword输入框之前 category_filter = st.selectbox("选择档案分类", ["全部分类", "项目文档", "人事文档", "会议记录", "合同文档", "其他"]) ```修改SQL查询语句增加分类条件即可,无需改变其他逻辑
档案整理行业认证,这玩意儿到底是不是你的职场“硬通货”?