# Et Excel

> ET Excel MCP workflow for reading, writing, styling, transforming, and inspecting xlsx data. Use when operating Excel cells, ranges, sheets, formulas, charts, merges, batch data import/export, or editing Luban source spreadsheets before export.

- Skill: `flameskydexive/et-excel` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add flameskydexive/et-excel`
- Raw SKILL.md: https://api.skillmd.com/api/skills/flameskydexive/et-excel/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: flameskydexive (https://skillmd.com/u/flameskydexive)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/flameskydexive/et-excel

---


# et-excel - ET Excel 入口

## 强制规则（重要）

- **只要涉及 Excel/xlsx 的任何读写操作，都必须调用 excelmcp（`ET.ExcelMcp`）完成；禁止手写脚本或用其它库/工具直接改 xlsx。**
- excelmcp 源工程位置：`./Packages/cn.etetet.config/DotNet~/ET.ExcelMcp`。
- 运行入口（编译产物）：仓库根目录 `./Bin/ET.ExcelMcp.dll`，统一在仓库根用 `dotnet ./Bin/ET.ExcelMcp.dll ...` 调用。
- **若 `./Bin/ET.ExcelMcp.dll` 不存在（没有可执行文件），先编译工程再操作**：

  ```powershell
  dotnet build "./Packages/cn.etetet.config/DotNet~/ET.ExcelMcp/ET.ExcelMcp.csproj" -c Debug
  ```

  产物会输出到 `./Bin/ET.ExcelMcp.dll`（csproj 的 `OutputPath = $(RepoRoot)Bin`，`RepoRoot` 即仓库根）。

## 何时使用

- 通过 `Bin/ET.ExcelMcp.dll` 读写 Excel
- 处理单元格、区域、样式、公式、图表、工作表
- 做批量数据导入导出、筛选、排序、合并单元格
- 维护 Luban 配置表内容，但还没有进入导出阶段

## 不要加载

- 只是编译、跑测试、做 Unity 编辑器操作
- 只是执行 Luban 导出，不需要实际读写 Excel（用 `et-luban`）
- 只是讨论表结构，不需要实际读写 Excel

## 默认动作

1. 先 `cli list` 或 `cli help <工具名>`，不要硬背完整工具表。
2. 能批量就批量，优先 `excel_range` / `excel_data_operations`，不要逐格操作。
3. JSON 参数只传本次调用最小字段集；`pwsh` 中优先外层单引号。
4. 写操作优先使用绝对路径；覆盖原文件前先确认目标文件。
5. 维护 Luban `__beans__`/`__enums__`/多态数据表时：用 `excel_data_operations batch_write` 只写非空格（空行真空）；写完**必须** `excel_merge_cells merge` 合并"列表"表头（`*fields` `J1:P1`、`*items` `H1:L1`、多态字段表头跨子列宽），否则 Luban 导出报缺 `alias` 列；含中文走 `Write→UTF-8 Python→ExcelMcp`，读回校验合并用 `get_merged`、文本用 `ascii()`。完整格式见 `et-luban`。
6. 改完表如果需要生成配置产物，再叠加 `et-luban`。

## 配置约定（项目规范）

- **资源类字段只填资源名**：不写完整路径与后缀；表里若出现 `Assets/.../xxx.prefab` 这类完整路径，应收敛为 `xxx`（加载侧按名字 LoadAsset）。
- **新增配置表必须注册 `__tables__.xlsx`**：补全 `Category / value_type / input / index / group`，否则 Luban 导不到这张表。
- **改完表必须导出，且优先定向导出**：只导受影响的配置数据/代码（如对应 GameConfig 的 `s` / `c` / `cs`），避免全量导出超时；导出与导出后 Unity 刷新走 `et-luban`。
- **写中文必须二次验证**：读回或检查 `xlsx` 的 `sharedStrings.xml`，不要只信终端输出（详见 `references/et-excel-cli.md` 的「中文写入防乱码」）。

## 优先入口

- `dotnet ./Bin/ET.ExcelMcp.dll cli list`
- `dotnet ./Bin/ET.ExcelMcp.dll cli help <工具名>`
- `dotnet ./Bin/ET.ExcelMcp.dll cli <工具名> '<JSON参数>'`

## 按需补读

- `references/et-excel-cli.md`：工具选择、`pwsh` JSON 传参、常用示例

