# Bases Export to Excel 一键将当前 **Bases(`.base`)** 视图的筛选结果导出为本地 **Excel(`.xlsx`)** 文件,并弹出「存储位置」选择框。 纯 JavaScript 实现,**无任何第三方依赖**:用 `obsidian.parseYaml` 解析 `.base`, 在本地复刻其 `filters / order / sort` 逻辑,手写 OOXML(Stored ZIP)生成真正的 `.xlsx`, 通过 Electron 保存对话框选择目录与文件名,导出后自动用默认程序打开。 ## 功能 - 读取当前打开的 `.base` 文件(或处于激活状态的 Bases 视图)。 - 完整支持 Bases 的筛选语法:`and / or / not` 分组,以及 `file.path.startsWith(...)`、 `file.ext == "md"`、`file.tags.contains("#文献笔记")`、`file.name != "..."`、 `property.字段` 等表达式。 - 按 `.base` 中 `order` 定义的列导出,并按 `sort` 排序。 - 点击工具栏表格图标,或命令面板执行「导出当前 Bases 筛选结果为 Excel」。 - 弹出系统「另存为」对话框,自由选择目录与文件名(默认保存在 `.base` 同目录)。 - 导出完成后自动打开该 Excel 文件。 ## 安装(手动 / BRAT) ### 方式一:BRAT(推荐,便于更新) 1. 社区插件市场安装 **BRAT**。 2. 命令面板 → `BRAT: Add a beta plugin`。 3. 填入仓库地址:`GroupiesM/Obsidian-bases-export-xlsx-Plugin`。 4. 启用插件即可。 ### 方式二:手动 将本仓库的 `main.js` / `manifest.json` / `styles.css` / `versions.json` 放入 Vault 的 `.obsidian/plugins/bases-export-xlsx/` 目录,重启 Obsidian 并在 「设置 → 社区插件」中启用。 ## 使用 1. 在 Obsidian 中打开任意一个 `.base` 文件(切到表格视图)。 2. 点击左侧工具栏的 **表格图标**,或 `Cmd/Ctrl + P` → 搜索「导出当前 Bases 筛选结果为 Excel」。 3. 在弹出的对话框中选择保存目录、填写文件名,确认。 4. 生成的 `.xlsx` 会自动用 Excel / Numbers 打开。 ## 说明与局限 - 本插件为 **桌面端专用**(`isDesktopOnly: true`),依赖 Electron 保存对话框。 - 筛选求值是对 Bases 查询引擎的「实用子集」复刻,覆盖常见表达式;极特殊的公式写法会按「宽松放行」处理(即不过滤掉该行)。 - 不支持 Bases 的公式计算列(`formulas`)结果,仅导出 `order` 中列出的属性字段。 ## 构建 本插件无需构建步骤:`main.js` 即最终产物(CommonJS,Obsidian 直接加载)。 如需修改,编辑 `main.js` 后重启/重载 Obsidian 即可。