📖 目录

0. 界面总览

🖥️ 左侧导航 · 全页操作

侧边栏结构

所有页面切换通过左侧 侧边栏 完成,页面地址(含场景、视图参数)持久化到 URL 哈希,刷新不丢失:

菜单项功能
仪表盘概览:业务入口卡片、统计卡片、快速上手工作流
业务名称点击切换到该业务的数据页,右侧显示该业务下的所有记录
业务设置增删改业务,调整排序和图标
文档模板所有单记录模板的表格列表,支持编辑、字段管理、复制、发布/下架
报表模板列表(批量导出)模板管理
设置 ▾手风琴菜单:备份 / 导出 / 导入 / 重置 / 修改密码 / 退出登录
帮助打开本帮助页

仪表盘(默认首页)

未选择业务时显示仪表盘,包含:

  • 统计卡片 — 总记录数、总模板数、业务数
  • 业务网格 — 每个业务的入口卡片,显示模板数+记录数,点击进入该业务
  • 快速上手 — 4 步工作流引导(创建业务→设置字段→录入数据→生成输出)

全页录入/编辑

数据录入和编辑均采用 全页表单(非模态框),顶部有返回按钮,100% 宽度铺满内容区,支持分组字段和子表操作。

1. 快速开始

访问方式

云端部署(推荐):任何设备浏览器打开部署地址(如 http://IP:3688 或未来 https://sheetdrive.cc),输入管理员分配的用户名 + 密码即可使用,数据实时保存到服务器,无需安装任何软件。

单机运行:命令行启动 python server.py,浏览器打开 http://localhost:3688;打包版双击 SheetDrive.exe 后从托盘图标「🌐 打开浏览器」进入。

基本流程

  1. 创建场景 — 如"发票""合同",将模板按场景分类管理
  2. 创建模板 — 命名后直达模板编辑器,上传 Excel 底版,定义字段和单元格映射
  3. 录入数据 — 点击场景旁的录入按钮,选模板后进入全页表单填写
  4. 生成 Excel — 选中模板后点击下载或保存到本地

2. 业务设置

什么是业务?

业务是对单个数据场景的分类管理(相当于传统的"单据类型")。每个业务有自己的字段定义、文档模板和数据。例如:发票、合同、装箱单、报价单各为一个独立业务。

管理业务

在侧边栏点击 业务设置 进入管理页,支持:

  • 修改 — 点击 ✏️ 编辑业务名称、图标、排序
  • 删除 — 删除后该业务下的模板业务置空

侧边栏业务

每个业务在侧边栏显示为独立条目,点击即切换到该业务的数据视图。每个业务条目右侧有 按钮,点击直接录入数据(自动选用该业务的模板)。

3. 数据管理

数据页

选中场景后,右侧展示该场景下的所有记录,以表格形式呈现。每条记录的操作列:

按钮功能
👁️预览记录详情(只读模态框,分组展示字段和子表)
✏️全页编辑表单
📋 模板名 ▾选择生成模板(选中后持久化到 localStorage,刷新不丢失)
📥 下载使用选定模板生成 Excel 并下载
💾 保存使用选定模板生成并保存到 _output/
🗑️删除记录

录入数据

点击场景旁的 按钮,或侧边栏的 + 录入

  • 该场景只有单个模板 — 直接进入全页录入表单
  • 多个模板 — 弹出模板选择窗口,点击目标模板进入全页表单

表单字段按分组排列,子表行可动态增删。公式字段在输入时自动实时预览。

搜索与筛选

  • 搜索框 — 全文搜索,匹配所有字段内容
  • 模板筛选 — 下拉选择模板,过滤到单个模板时展开所有可见字段列

补编号

旧数据缺少编号时,工具栏会显示 🔢 补编号 (N) 按钮,点击自动按模板计数规则填补。

4. 文档模板

模板列表

文档模板 用表格展示所有单记录模板(1条记录→1个输出文件),显示图标、名称、业务、字段数、数据数、状态。顶部有 + 新建模板 按钮。

报表模板

报表模板 用于批量数据导出(N条记录→1张Excel表格),支持子表字段展开为多行、主字段重复填充。操作方式类似文档模板,但映射的是Excel列字母而非单元格地址。

新建模板

点击按钮后直接创建默认模板(名"新模板"、草稿状态)并跳转到编辑器,无需中间弹窗。在编辑器内修改名称、场景、版本、文件名格式等。

操作列

按钮功能
✏️ 编辑进入模板编辑器
📑 字段跳转到字段管理(同编辑器)
📋 复制复制模板及其所有字段/映射/上传的 Excel 底版
📤/📥 发布/下架切换发布状态,草稿模板在录入时不可选
🗑️删除模板(含所有字段、记录、子表数据)

模板编辑器

全页编辑器,顶部包含:

  • ← 返回按钮
  • 模板名称(可点击编辑区的名称输入框修改)
  • 发布/下架、删除操作
  • 文件命名规则、编号前缀/补齐位数等配置
  • Excel 模板上传
  • 字段配置表格(支持添加/编辑/删除字段)
  • 子表列编辑器

5. 字段配置

字段类型

类型说明
文本单行文本输入
数字数字输入,支持小数位数设置
日期日期选择器
多行文本文本域,适合地址、备注等大段内容
下拉选择预定义选项,每行一个
自动编号保存时自动生成编号,支持按字段分组重置
公式自动计算字段,支持 SUM(_items.amount) 等表达式
明细行子表结构,需在列编辑器中定义子字段

Excel 单元格映射

编辑字段时,填写 Excel 单元格地址(如 B3)指定该字段写入模板的哪个格子。支持:

  • 简单地址:B3 — 写入 B3 单元格
  • 合并格式:地址 A2 + 格式 {buyer_name} - {contract_no} → 写入 张三 - CONT-0001
  • 纯列字母:FF+1 — 自动跟随子表末行位置

6. 编号系统

工作原理

每个模板有独立的计数器。保存新记录时,系统:

  1. 读取模板的编号前缀 + 当前计数器值
  2. 生成 INV-2026-0001
  3. 计数器自动 +1

删除记录不影响计数器,避免编号重复。编辑记录时 保留原有编号不被覆盖。

前缀占位符

占位符说明示例(2026年6月)
{year}四位年份2026
{ym}六位年月202606
{y}两位年份26

配置示例

前缀生成效果
INV-{year}-INV-2026-0001
PO-{ym}-PO-202606-0001
CONT-CONT-0001(无占位符,原样输出)

7. Excel 输出

每条记录需要先选择模板(选中后蓝色高亮),然后使用两个输出按钮:

按钮功能适用场景
📥 下载浏览器下载临时查看、单次使用
💾 保存保存到 _output/ 目录长期保存、批量归档

文件名

文件名由模板的"文件名格式"控制,默认 {_no}。支持引用任意字段值:

{_no} - {buyer_name} → INV-2026-0001 - 张三.xlsx {contract_no} → CONT-0012.xlsx

多模板生成

每条记录可以选用不同的模板生成,互不影响。选中的模板会持久化到浏览器本地存储,刷新页面不丢失。

8. 明细表(子表)

定义子表字段

  1. 添加一个类型为 明细行 的字段
  2. 点击字段操作栏的 📋 列 按钮
  3. 定义子表列:Key、列名、类型(文本/数字)、宽度、公式、小数位数、Excel 列字母

列公式

子表列可以定义公式,如 qty*price,自动计算行内值:

列 Key: qty(数字),price(数字),amount(数字,公式 qty*price) → 每行输入数量和单价,金额自动计算

模板中的子表区域

子表在 Excel 底版中需要预留位置,通常包含表头行和一行示例数据。生成时,系统:

  1. 识别子表范围(从模板配置的起始行号开始)
  2. 插入足够的数据行(不覆盖下方 TOTAL / 备注 / 签名)
  3. 合并单元格自动恢复(行偏移适配)
  4. 公式备份后重新填入(避免插入行破坏引用)

9. 设置与服务

侧边栏 ⚙️ 设置 ▾ 展开后包含:

功能说明
💾 备份触发服务端创建时间戳备份到 data/backups/
📤 导出下载当前数据库文件 (database.db)
📂 导入上传数据库文件替换当前数据
🔄 重置恢复数据库到初始状态(清空所有数据)

自动备份

服务端在每次数据写入前自动备份旧版本到 data/backups/auto-{时间戳}.bak,无需手动操作。

原子写入保护

服务端先写 database.db.tmp,成功后原子重命名,防止写入崩溃导致文件损坏。

10. 部署与访问(单机/局域网/云端)

系统托盘中的蓝色 SD 图标右键菜单提供以下功能:

菜单项功能
🌐 打开浏览器在本机浏览器打开应用首页(默认)
🌐 局域网地址 192.168.x.x:3688局域网开启时显示,点击用局域网地址打开
⚙ 更换端口...弹出对话框输入新端口 (1024~65535),自动重启服务
🔒 局域网: 关点击开启,服务绑定 0.0.0.0,局域网设备可访问
🔓 局域网: 开 (IP:端口)点击关闭,仅本机可访问
🔒 开启防火墙 (端口)添加 Windows 防火墙入站规则(需要 UAC 确认)
🔓 关闭防火墙 (端口)删除 Windows 防火墙入站规则(需要 UAC 确认)
✕ 退出停止服务并退出程序

端口更换

当默认端口 3688 被其他程序占用时,右键托盘图标 → ⚙ 更换端口...,输入新端口号即可。服务会在新端口自动重启,无需手动修改配置文件。

局域网访问

要让局域网其他设备访问 SheetDrive,需要两步:

  1. 开启局域网 — 托盘菜单「🔒 局域网: 关」→ 点击切换为「🔓 局域网: 开」
  2. 放行防火墙 — 托盘菜单「🔒 开启防火墙」→ 弹出 UAC 确认后添加规则

开启后,其他设备在浏览器输入 http://192.168.x.x:3688 即可访问(IP 地址显示在托盘标题和菜单中)。

配置持久化

端口号、局域网开关等设置保存在 data/config.json 中,下次启动自动恢复。

11. 常见问题

数据存在哪里?

数据存储在服务器的 data/database.db(标准 SQLite)。所有写入均为服务端事务提交,commit 成功才算保存成功;浏览器只是操作界面,刷新/换设备不丢数据。

如何恢复备份?

服务器每日 03:00 自动备份到 data/backups/daily-*.db(保留最近 14 份)。恢复:停服务 → 用目标备份覆盖 data/database.db(删除同目录 -wal/-shm)→ 启动。也可在界面「设置 → 备份」手动触发。

如何迁移到另一台电脑?

云端部署无需迁移——任何电脑/手机浏览器登录即可见全部数据。单机模式则复制整个目录(含 data/ lib/ server.py)到新电脑运行即可。

数据会丢吗?

不会。数据写入走服务端 SQLite 事务 + WAL,浏览器关页面、断网都不影响已保存数据;写操作失败有红色横幅提示并可重试;另有每日自动备份兜底。

Excel 模板有什么要求?

使用 .xlsx 格式(不支持 .xls)。模板可以包含:静态文字、表格、Logo、合并单元格、边框、公式。不要 在模板单元格中写数据占位符,数据通过字段映射写入。

如何修改登录密码?

登录后:侧边栏「设置 ▾ → 修改密码」,输入当前密码与新密码即可。服务器管理员也可直接编辑 data/config.jsonusers 后重启服务。

登录不上 / 忘记密码怎么办?

先确认部署地址正确、服务运行中(浏览器能打开登录页即正常)。账号密码由服务器管理员在 data/config.jsonusers 中配置;忘记密码需管理员重置该值后重启服务(云端:systemctl restart sheetdrive)。

端口 3688 被占用怎么办?

本地模式修改 data/config.jsonport 后重启。云端部署一般由服务端口 3688 对公网放行,如改用域名 HTTPS 则由反向代理处理。

如何让局域网其他设备访问?

云端部署直接公网可访问(输入部署地址 + 账号密码)。单机模式:config.json 中 lan_access: true 后,同网段设备访问 http://你的IP:3688

防火墙规则怎么删除?

本地托盘模式:托盘菜单「关闭防火墙 (端口)」;云端部署无此概念,安全由云控制台安全组管理。