Skip to content

feat(read): add bounded sparse XLSX workbook support - #7

Open
jieyuexing wants to merge 2 commits into
lencx:mainfrom
jieyuexing:feat/xlsx-workbook-support
Open

feat(read): add bounded sparse XLSX workbook support#7
jieyuexing wants to merge 2 commits into
lencx:mainfrom
jieyuexing:feat/xlsx-workbook-support

Conversation

@jieyuexing

Copy link
Copy Markdown

Summary

  • add a native sparse OOXML reader for local .xlsx workbooks, with bounded previews and batched Sheet!A1:D20 range selection
  • preserve structured workbook evidence including sheet visibility, semantic bounds, defined names, formulas and cached values, dates, merged-cell membership, range overflow, rich-text strike/color, print settings, and worksheet picture anchors
  • expose revision-only probes, incremental WorkbookSession refresh, and generated Markdown mirror replacement without overwriting agent-authored regions
  • publish the workbook artifact through the CLI machine protocol and Node facade, with cell, compressed-input, expanded-OOXML, image-payload, and serialized-output limits
  • add compatibility documentation, corpus/read benchmark harnesses, Rust integration tests, CLI tests, and Node protocol validation

Safety and limits

  • the reader does not recalculate formulas or execute macros
  • legacy .xls, encrypted workbooks, chart reconstruction, image OCR, conditional-format rendering, and Excel-accurate visual rendering remain out of scope
  • declared worksheet dimensions never cause dense rectangular allocation
  • truncated reads retain valid structured output and explicit completeness/warning signals

Scope

This branch is based directly on the latest lencx/opsail:main and intentionally excludes the cookie-file and CLI-usage changes proposed separately in #5 and #6.

Testing

  • cargo +1.97.0 fmt --all -- --check
  • cargo +1.97.0 test --workspace --offline (279 passed)
  • cargo +1.97.0 clippy --workspace --all-targets --offline -- -D warnings
  • RUSTUP_TOOLCHAIN=1.97.0 npm test from packages/node (87 passed)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant