excel-vis 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Chandler
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,485 @@
1
+ Metadata-Version: 2.4
2
+ Name: excel-vis
3
+ Version: 0.1.0
4
+ Summary: A lightweight web application for Excel data management and visualization, powered by FastAPI + Tailwind CSS + Alpine.js
5
+ Author-email: Chandler <275737875@qq.com>
6
+ License-Expression: MIT
7
+ Keywords: excel,fastapi,web,visualization,data-management
8
+ Classifier: Development Status :: 3 - Alpha
9
+ Classifier: Framework :: FastAPI
10
+ Classifier: Intended Audience :: End Users/Desktop
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.9
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Topic :: Office/Business :: Financial :: Spreadsheet
17
+ Requires-Python: >=3.9
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Requires-Dist: fastapi>=0.100.0
21
+ Requires-Dist: uvicorn[standard]>=0.20.0
22
+ Requires-Dist: openpyxl>=3.1.0
23
+ Requires-Dist: typer>=0.9.0
24
+ Requires-Dist: python-multipart>=0.0.6
25
+ Requires-Dist: jinja2>=3.1.0
26
+ Provides-Extra: dev
27
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
28
+ Requires-Dist: httpx>=0.24.0; extra == "dev"
29
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
30
+ Dynamic: license-file
31
+
32
+ # Excel-Vis
33
+
34
+ **一个让你用浏览器轻松管理 Excel 数据的工具。**
35
+
36
+ Excel-Vis 是一个基于 Python 的轻量级 Web 应用,它把你电脑上的 Excel 文件变成一个可以在浏览器中查看、编辑、新增、删除数据的网页系统。你不需要安装任何数据库,Excel 文件本身就是你的"数据库"。
37
+
38
+ 简单来说:**安装 → 一行命令启动 → 打开浏览器就能管理你的 Excel 数据。**
39
+
40
+ ---
41
+
42
+ ## 功能特性
43
+
44
+ - **浏览器查看 Excel 数据**:以美观的网页表格展示 Excel 文件内容,支持手机访问
45
+ - **在线增删改查**:直接在网页上新增、编辑、删除记录,修改会自动保存到 Excel 文件
46
+ - **单击查看详情**:点击任意一行,弹窗展示该行所有字段的完整信息
47
+ - **Excel 导入/导出**:支持上传 Excel 文件导入数据(追加或覆盖),也可导出当前数据
48
+ - **支持任意结构**:不限定 Excel 的列名和列数,系统自动识别表头
49
+ - **自定义列显示**:可以选择显示哪些列、修改列的显示名称、拖拽调整列顺序
50
+ - **布局设置**:支持紧凑/标准/宽松三种表格密度,可设置每页显示行数
51
+ - **双渠道编辑**:网页端修改自动写入 Excel;你也可以直接编辑 Excel 文件,刷新网页即可看到最新内容
52
+ - **一键启动**:安装后一条命令即可运行,自动打开浏览器
53
+ - **零配置**:无需数据库,无需复杂配置,开箱即用
54
+
55
+ ---
56
+
57
+ ## 安装指南
58
+
59
+ ### 环境要求
60
+
61
+ - **Python 版本**:3.9 或更高版本
62
+ - **操作系统**:Windows、macOS、Linux 均可
63
+ - **浏览器**:Chrome、Firefox、Edge、Safari 等现代浏览器
64
+
65
+ ### 第一步:检查 Python 版本
66
+
67
+ 打开你的终端(Windows 用户打开"命令提示符"或"PowerShell"),输入:
68
+
69
+ ```bash
70
+ python --version
71
+ ```
72
+
73
+ 如果显示 `Python 3.9.x` 或更高版本,说明环境已就绪。如果版本过低或未安装,请前往 [python.org](https://www.python.org/downloads/) 下载安装。
74
+
75
+ ### 第二步:安装 excel-vis
76
+
77
+ ```bash
78
+ pip install excel-vis
79
+ ```
80
+
81
+ 等待安装完成即可。这会自动安装所有需要的依赖包。
82
+
83
+ ### 第三步:验证安装
84
+
85
+ ```bash
86
+ excel-vis --help
87
+ ```
88
+
89
+ 如果看到帮助信息输出,说明安装成功。
90
+
91
+ ---
92
+
93
+ ## 使用教程
94
+
95
+ ### 快速启动(最简单的方式)
96
+
97
+ 在终端中进入你想存放 Excel 文件的目录,然后运行:
98
+
99
+ ```bash
100
+ excel-vis
101
+ ```
102
+
103
+ 系统会自动:
104
+ 1. 在当前目录创建一个带有示例数据的 `data.xlsx` 文件(如果不存在的话)
105
+ 2. 启动 Web 服务
106
+ 3. 自动打开浏览器展示数据
107
+
108
+ ### 指定已有的 Excel 文件
109
+
110
+ 如果你已经有一个 Excel 文件,可以直接指定它:
111
+
112
+ ```bash
113
+ excel-vis --file /path/to/your/file.xlsx
114
+ ```
115
+
116
+ **Windows 示例:**
117
+ ```bash
118
+ excel-vis --file C:\Users\张三\Documents\员工信息.xlsx
119
+ ```
120
+
121
+ **macOS/Linux 示例:**
122
+ ```bash
123
+ excel-vis --file ~/Documents/员工信息.xlsx
124
+ ```
125
+
126
+ ### 更多启动参数
127
+
128
+ ```bash
129
+ # 指定端口号(默认 8000)
130
+ excel-vis --port 8080
131
+
132
+ # 指定监听地址(让局域网内其他电脑也能访问)
133
+ excel-vis --host 0.0.0.0 --port 8080
134
+
135
+ # 不自动打开浏览器
136
+ excel-vis --no-browser
137
+
138
+ # 完整示例:指定文件、端口、不打开浏览器
139
+ excel-vis --file mydata.xlsx --port 9000 --no-browser
140
+ ```
141
+
142
+ ### 在 Python 代码中使用
143
+
144
+ 如果你是开发者,也可以在 Python 代码中直接调用:
145
+
146
+ ```python
147
+ import excel_vis
148
+
149
+ # 最简单的方式:一行代码启动
150
+ excel_vis.run()
151
+
152
+ # 自定义参数启动
153
+ excel_vis.run(
154
+ file="mydata.xlsx", # Excel 文件路径
155
+ host="0.0.0.0", # 监听地址
156
+ port=8080, # 端口号
157
+ open_browser=True # 是否自动打开浏览器
158
+ )
159
+
160
+ # 只创建 FastAPI 应用实例(用于集成到自己的项目中)
161
+ app = excel_vis.create_app(file="mydata.xlsx")
162
+ ```
163
+
164
+ ### 通过模块方式运行
165
+
166
+ ```bash
167
+ python -m excel_vis --file data.xlsx --port 8000
168
+ ```
169
+
170
+ ---
171
+
172
+ ## 网页操作指南
173
+
174
+ 启动后打开浏览器,你会看到一个数据管理界面。以下是各功能的使用方法:
175
+
176
+ ### 查看数据
177
+
178
+ - 页面加载后自动显示 Excel 中的所有数据
179
+ - 表格支持分页浏览,底部可切换页码
180
+ - 在手机上访问时,表格可左右滑动
181
+
182
+ ### 查看某行详情
183
+
184
+ - **单击表格中的任意一行**,会弹出一个窗口,展示该行所有字段的名称和值
185
+ - 在详情窗口中可以直接点击"编辑"进入编辑模式
186
+
187
+ ### 新增记录
188
+
189
+ 1. 点击顶部工具栏的 **"新增"** 按钮
190
+ 2. 在弹出的表单中填写各字段(ID 会自动生成,不需要手动填)
191
+ 3. 点击 **"保存"**,数据将写入 Excel 文件并刷新表格
192
+
193
+ ### 编辑记录
194
+
195
+ 1. 点击某行右侧的 **编辑图标**(笔形图标)
196
+ 2. 修改需要更改的字段
197
+ 3. 点击 **"保存"**,修改将同步到 Excel 文件
198
+
199
+ ### 删除记录
200
+
201
+ 1. 点击某行右侧的 **删除图标**(垃圾桶图标)
202
+ 2. 系统会弹出确认对话框,防止误操作
203
+ 3. 确认后该行将从 Excel 文件中永久删除
204
+
205
+ ### 导入 Excel 文件
206
+
207
+ 1. 点击顶部工具栏的 **"导入"** 按钮
208
+ 2. 选择一个 `.xlsx` 或 `.xls` 文件
209
+ 3. 选择导入模式:
210
+ - **追加模式**:保留原有数据,把新文件中的数据添加到末尾
211
+ - **覆盖模式**:删除所有原有数据,完全用新文件替换
212
+ 4. 点击 **"开始导入"**
213
+
214
+ ### 导出 Excel 文件
215
+
216
+ - 点击顶部工具栏的 **"导出"** 按钮
217
+ - 浏览器会自动下载一个 Excel 文件,文件名格式为 `数据导出_日期_时间.xlsx`
218
+
219
+ ### 刷新数据
220
+
221
+ - 如果你在外部直接编辑了 Excel 文件,点击 **"刷新"** 按钮即可加载最新数据
222
+
223
+ ### 自定义列设置
224
+
225
+ 1. 点击顶部工具栏的 **"列设置"** 按钮
226
+ 2. 在右侧弹出的面板中可以:
227
+ - **勾选/取消勾选**:控制哪些列在表格中显示
228
+ - **修改显示名称**:把英文列名改成中文等自定义名称
229
+ - **拖拽排序**:按住左侧拖拽图标调整列的显示顺序
230
+ - **切换表格密度**:紧凑/标准/宽松
231
+ - **设置每页行数**:10/20/50/100
232
+ 3. 点击 **"应用"** 保存设置
233
+ 4. 这些设置保存在浏览器中,下次打开页面会自动恢复
234
+
235
+ ---
236
+
237
+ ## API 接口说明
238
+
239
+ Excel-Vis 提供标准的 RESTful API,可以被其他程序调用。启动服务后,API 基础地址为 `http://localhost:8000`(端口号取决于你的设置)。
240
+
241
+ ### 获取所有数据
242
+
243
+ ```
244
+ GET /api/data
245
+ ```
246
+
247
+ **响应示例:**
248
+ ```json
249
+ {
250
+ "code": 200,
251
+ "data": [
252
+ {"id": 1, "姓名": "张三", "年龄": 28, "邮箱": "zh@ex.com", "部门": "技术部"},
253
+ {"id": 2, "姓名": "李芳", "年龄": 32, "邮箱": "li@ex.com", "部门": "市场部"}
254
+ ]
255
+ }
256
+ ```
257
+
258
+ ### 获取单条记录
259
+
260
+ ```
261
+ GET /api/data/{id}
262
+ ```
263
+
264
+ **示例:** `GET /api/data/1`
265
+
266
+ **响应:**
267
+ ```json
268
+ {
269
+ "code": 200,
270
+ "data": {"id": 1, "姓名": "张三", "年龄": 28, "邮箱": "zh@ex.com", "部门": "技术部"}
271
+ }
272
+ ```
273
+
274
+ ### 新增记录
275
+
276
+ ```
277
+ POST /api/data
278
+ Content-Type: application/json
279
+
280
+ {"姓名": "王五", "年龄": 25, "邮箱": "wang@ex.com", "部门": "产品部"}
281
+ ```
282
+
283
+ **响应:**
284
+ ```json
285
+ {"code": 200, "message": "ok", "id": 3}
286
+ ```
287
+
288
+ ### 更新记录
289
+
290
+ ```
291
+ PUT /api/data/{id}
292
+ Content-Type: application/json
293
+
294
+ {"姓名": "王五改", "年龄": 26}
295
+ ```
296
+
297
+ **响应:**
298
+ ```json
299
+ {"code": 200, "message": "ok"}
300
+ ```
301
+
302
+ ### 删除记录
303
+
304
+ ```
305
+ DELETE /api/data/{id}
306
+ ```
307
+
308
+ **响应:**
309
+ ```json
310
+ {"code": 200, "message": "ok"}
311
+ ```
312
+
313
+ ### 获取列信息
314
+
315
+ ```
316
+ GET /api/columns
317
+ ```
318
+
319
+ **响应:**
320
+ ```json
321
+ {"code": 200, "columns": ["id", "姓名", "年龄", "邮箱", "部门", "入职日期"]}
322
+ ```
323
+
324
+ ### 导入 Excel
325
+
326
+ ```
327
+ POST /api/import
328
+ Content-Type: multipart/form-data
329
+
330
+ file: <Excel 文件>
331
+ mode: append 或 overwrite
332
+ ```
333
+
334
+ **响应:**
335
+ ```json
336
+ {"code": 200, "message": "追加导入成功,共导入 5 条记录"}
337
+ ```
338
+
339
+ ### 导出 Excel
340
+
341
+ ```
342
+ GET /api/export
343
+ ```
344
+
345
+ 返回 `.xlsx` 文件下载。
346
+
347
+ ---
348
+
349
+ ## 依赖项清单
350
+
351
+ | 依赖包 | 最低版本 | 用途 |
352
+ |--------|---------|------|
353
+ | fastapi | 0.100.0 | Web 框架,提供 API 服务 |
354
+ | uvicorn[standard] | 0.20.0 | ASGI 服务器,运行 FastAPI 应用 |
355
+ | openpyxl | 3.1.0 | 读写 Excel (.xlsx) 文件 |
356
+ | typer | 0.9.0 | 命令行界面(CLI)框架 |
357
+ | python-multipart | 0.0.6 | 处理文件上传 |
358
+ | jinja2 | 3.1.0 | HTML 模板渲染 |
359
+
360
+ **开发依赖(可选):**
361
+
362
+ | 依赖包 | 用途 |
363
+ |--------|------|
364
+ | pytest | 运行测试 |
365
+ | httpx | API 测试客户端 |
366
+ | pytest-asyncio | 异步测试支持 |
367
+
368
+ ---
369
+
370
+ ## 常见问题
371
+
372
+ ### Q: 启动后浏览器没有自动打开怎么办?
373
+
374
+ 手动打开浏览器,访问终端中显示的地址(默认为 `http://127.0.0.1:8000`)。
375
+
376
+ ### Q: 提示端口被占用怎么办?
377
+
378
+ 换一个端口号启动:
379
+
380
+ ```bash
381
+ excel-vis --port 9000
382
+ ```
383
+
384
+ ### Q: 我的 Excel 文件没有 id 列怎么办?
385
+
386
+ 没有关系!系统会自动添加 `id` 列并为每行生成唯一编号,不会影响你原有的数据。
387
+
388
+ ### Q: 我直接用 Excel 软件修改了文件,网页上怎么看到新数据?
389
+
390
+ 点击网页上的 **"刷新"** 按钮,即可重新加载 Excel 文件中的最新内容。
391
+
392
+ ### Q: 可以多人同时使用吗?
393
+
394
+ 本工具设计为**单用户或小团队轻量使用**。由于 Excel 文件不支持并发写入,建议同一时间只有一个人进行编辑操作。多人同时查看数据是没有问题的。
395
+
396
+ ### Q: 支持哪些格式的 Excel 文件?
397
+
398
+ 支持 `.xlsx`(推荐)和 `.xls` 格式。导出时统一使用 `.xlsx` 格式。
399
+
400
+ ### Q: 数据量有限制吗?
401
+
402
+ 建议 Excel 文件不超过 **10,000 行 × 30 列**。超过此规模可能会导致加载变慢。
403
+
404
+ ### Q: 如何让局域网内其他电脑访问?
405
+
406
+ 启动时指定 host 为 `0.0.0.0`:
407
+
408
+ ```bash
409
+ excel-vis --host 0.0.0.0 --port 8000
410
+ ```
411
+
412
+ 然后其他电脑在浏览器中输入 `http://你的IP地址:8000` 即可访问。
413
+
414
+ ### Q: 上传文件有大小限制吗?
415
+
416
+ 默认限制为 **10MB**。如果需要导入更大的文件,建议先精简数据或分批导入。
417
+
418
+ ---
419
+
420
+ ## 免责声明
421
+
422
+ ### 使用风险
423
+
424
+ 1. **数据安全**:本软件直接读写 Excel 文件,操作不可撤销。删除或覆盖导入等操作会**永久修改**你的 Excel 文件。强烈建议在使用前**备份重要数据**。
425
+
426
+ 2. **非生产环境工具**:本软件为轻量级数据管理工具,适用于个人使用、小团队内部管理、数据演示等场景。**不建议**用于生产环境、金融交易、医疗记录等对数据安全性和可靠性有严格要求的场景。
427
+
428
+ 3. **并发限制**:本软件使用 Excel 文件作为数据存储,不具备数据库级别的并发控制能力。多人同时写入可能导致数据冲突或丢失。
429
+
430
+ 4. **网络安全**:本软件默认不包含用户认证和权限控制。如果部署在公网环境中,任何能够访问该地址的人都可以查看和修改你的数据。请勿在不受信任的网络环境中使用,或自行配置防火墙和访问控制。
431
+
432
+ 5. **文件完整性**:如果 Excel 文件在使用过程中被外部程序(如 Excel 软件)同时打开并编辑,可能导致文件损坏或数据不一致。
433
+
434
+ ### 责任归属
435
+
436
+ - 本软件按"现状"提供,作者**不对因使用本软件而导致的任何数据丢失、损坏、泄露或其他损失承担责任**。
437
+ - 用户应自行评估使用本软件的风险,并采取必要的数据备份和安全防护措施。
438
+ - 用户应确保其使用本软件的方式符合所在地区的法律法规。
439
+
440
+ ### 使用建议
441
+
442
+ - 使用前务必**备份** Excel 文件
443
+ - 定期通过"导出"功能下载数据备份
444
+ - 避免在公网环境中不加防护地部署
445
+ - 避免多人同时进行写入操作
446
+ - 重要数据请使用专业数据库系统管理
447
+
448
+ ---
449
+
450
+ ## 贡献指南
451
+
452
+ 欢迎贡献代码、报告问题或提出建议!
453
+
454
+ 1. Fork 本项目
455
+ 2. 创建你的功能分支:`git checkout -b feature/my-feature`
456
+ 3. 提交更改:`git commit -m "Add my feature"`
457
+ 4. 推送到分支:`git push origin feature/my-feature`
458
+ 5. 创建 Pull Request
459
+
460
+ ### 开发环境搭建
461
+
462
+ ```bash
463
+ # 克隆项目
464
+ git clone https://github.com/your-repo/excel-vis.git
465
+ cd excel-vis
466
+
467
+ # 安装开发依赖
468
+ pip install -e ".[dev]"
469
+
470
+ # 运行测试
471
+ pytest tests/ -v
472
+ ```
473
+
474
+ ---
475
+
476
+ ## 许可证信息
477
+
478
+ 本项目采用 **MIT 许可证** 开源。
479
+
480
+ 你可以自由地使用、复制、修改、合并、发布、分发本软件,但需要在软件的所有副本中包含版权声明和许可证声明。
481
+
482
+ 详见 [LICENSE](./LICENSE) 文件。
483
+
484
+
485
+