Skip to content

Latest commit

 

History

History
130 lines (101 loc) · 4.1 KB

File metadata and controls

130 lines (101 loc) · 4.1 KB

Excel Add-in React

Excel task pane add-in for workbook explainability. The live repo now contains only:

  • the Office.js + React add-in shell
  • the local graph_runtime/ backend for workbook scan, dependency tracing, graph view, and Groq story generation
  • the minimal manifest/commands plumbing Excel requires to sideload and open the task pane

Legacy experiments and older product branches were moved under archive/.

Quick Start

From the repo root:

cd /Users/arnoldcheskis/Documents/Projects/Financial\ modeling/excel-addin-react
npm install
uv sync
cp .env.example .env

Set the current runtime variables in .env:

GRAPH_RUNTIME_PORT=8010
ASPOSE_LICENSE_PATH=/absolute/path/to/Aspose.Cells.lic
GROQ_API_KEY=your_groq_api_key_here
GROQ_MODEL=openai/gpt-oss-20b

Start the backend:

uv run python graph_runtime_main.py

Start the add-in shell in another terminal:

npm start

Health check:

curl http://127.0.0.1:8010/api/health

Current Flow

How the add-in gets into Excel

flowchart LR
    A["Developer runs npm start"] --> B["office-addin-debugging start manifest.xml"]
    B --> C["Webpack dev server starts on https://localhost:3000"]
    B --> D["Excel sideloads manifest.xml"]
    D --> E["Excel shows the ProJets ribbon button"]
    E --> F["User clicks the button"]
    F --> G["Excel opens taskpane.html"]
    G --> H["office.js loads"]
    H --> I["src/taskpane/index.tsx waits for Office.onReady()"]
    I --> J["React renders App.tsx"]
Loading

Runtime path

flowchart TD
    A["App.tsx"] --> B["ExplainabilityPanel"]
    B --> C["Scan Workbook or Upload Workbook File"]
    C --> D["Frontend sends workbook bytes to /graph-api/api/workbooks/scan"]
    D --> E["graph_runtime builds and caches workbook snapshot"]
    E --> F["Excel selection change fires"]
    F --> G["Frontend resolves active cell"]
    G --> H["POST /graph-api/api/workbooks/{id}/explain-cell"]
    H --> I["Trace and Graph tabs render explanation"]
    I --> J["Optional Story tab calls Groq"]
Loading

What stays live

  • manifest.xml
  • webpack.config.js
  • src/commands/commands.html
  • src/commands/commands.ts
  • src/taskpane/taskpane.html
  • src/taskpane/index.tsx
  • src/taskpane/components/App.tsx
  • src/taskpane/components/App.styles.ts
  • src/taskpane/features/explainability/**
  • graph_runtime/**
  • graph_runtime_main.py

Repo Layout

excel-addin-react/
├── archive/                      # legacy code and data moved out of the live path
├── assets/                       # manifest icons
├── graph_runtime/                # FastAPI local backend
├── src/commands/                 # manifest function file plumbing
├── src/taskpane/                 # task pane bootstrap + explainability UI
├── manifest.xml                  # Office add-in manifest
├── webpack.config.js             # frontend build + /graph-api proxy
├── package.json                  # frontend scripts
└── pyproject.toml                # backend dependencies

Archive

Archived material now lives under archive/, including:

  • old llm_alpha_models/
  • old traffic_model/
  • old financial_model_knowledge_graph/
  • old src/ProJetsAddin/
  • sample payload/data files
  • old deployment files

See [archive/README.md](/Users/arnoldcheskis/Documents/Projects/Financial modeling/excel-addin-react/archive/README.md) for restore instructions. If you need the last working version with the ProJets backend, revert the main remote repo to commit ec7ab63, then check [archive/README.md](/Users/arnoldcheskis/Documents/Projects/Financial modeling/excel-addin-react/archive/README.md) for the latest local commit handoff. Warning: the old local .git-broken state is corrupted, so restoring from it will require debugging.

Notes

  • webpack.config.js is part of the live flow and must stay.
  • src/commands/commands.html and src/commands/commands.ts are still required by manifest.xml.
  • The current runtime is full-workbook scan plus cached explanation on selection.
  • Story generation is optional; scan/trace/graph work without Groq.