Files
upstream-mirror bcf6ef63ad
Some checks failed
📦 Build / build (push) Has been cancelled
🧪 CI Test / test shard (1/4) (push) Has been cancelled
🧪 CI Test / test shard (2/4) (push) Has been cancelled
🧪 CI Test / test shard (3/4) (push) Has been cancelled
🧪 CI Test / test shard (4/4) (push) Has been cancelled
🧪 CI Test / test (push) Has been cancelled
🧪 CI Test / eslint (push) Has been cancelled
🧪 CI Test / typecheck (push) Has been cancelled
🔫 Sync to Pro / dispatch-sync (push) Has been cancelled
🔮 Sync Mirror / sync (push) Has been cancelled
snapshot of https://github.com/dream-num/univer.git (dev, 2026-09-16; blobs > 131072B omitted)
2026-09-16 05:09:45 +05:00
..

Sheets Filter

There are a lot of implementation details that is not explicitly documented in the OOXML document or just simply hard to be noticed. This documents entails some interesting and important details.

Architecture Design

Please refer to the excalidraw file in the same folder.

Details of Microsoft Excel

The first detail that is interesting is

History Tickets

Custom Filters

OOXML Compatibility

In OOXML, there are a limited number of custom filter operators (please refer to CustomFilterOperator), and other operators including startsWith and endsWith (for a full list of this kind of operators see ExtendCustomFilterOperator) are actually supported by the combinations of OOXML operators, *? regex-like fuzzy matching, filter-by-values, dynamic filter, and so on.

We take the same method instead of making ExtendCustomFilterOperator to be first-class citizens, because it is more OOXML-compatible and makes importing/exporting Excel files easier to implement.

The cost is to implement the transformation between ExtendCustomFilterOperator and combinations. But the overall cost seems to be acceptable.