@node-projects/excelforge 2.3.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/FUNDING.yml +4 -0
- package/MISSING.md +326 -0
- package/README.md +484 -12
- package/dist/core/SharedStrings.js +6 -2
- package/dist/core/SharedStrings.js.map +1 -1
- package/dist/core/Workbook.d.ts +41 -1
- package/dist/core/Workbook.js +773 -57
- package/dist/core/Workbook.js.map +1 -1
- package/dist/core/WorkbookReader.d.ts +18 -4
- package/dist/core/WorkbookReader.js +1386 -20
- package/dist/core/WorkbookReader.js.map +1 -1
- package/dist/core/Worksheet.d.ts +130 -2
- package/dist/core/Worksheet.js +792 -66
- package/dist/core/Worksheet.js.map +1 -1
- package/dist/core/types.d.ts +287 -5
- package/dist/core/types.js +12 -1
- package/dist/core/types.js.map +1 -1
- package/dist/features/ChartBuilder.d.ts +9 -1
- package/dist/features/ChartBuilder.js +140 -14
- package/dist/features/ChartBuilder.js.map +1 -1
- package/dist/features/CsvModule.d.ts +11 -0
- package/dist/features/CsvModule.js +137 -0
- package/dist/features/CsvModule.js.map +1 -0
- package/dist/features/Encryption.d.ts +6 -0
- package/dist/features/Encryption.js +806 -0
- package/dist/features/Encryption.js.map +1 -0
- package/dist/features/FormControlBuilder.d.ts +6 -0
- package/dist/features/FormControlBuilder.js +135 -0
- package/dist/features/FormControlBuilder.js.map +1 -0
- package/dist/features/FormulaEngine.d.ts +22 -0
- package/dist/features/FormulaEngine.js +498 -0
- package/dist/features/FormulaEngine.js.map +1 -0
- package/dist/features/HtmlModule.d.ts +21 -0
- package/dist/features/HtmlModule.js +1417 -0
- package/dist/features/HtmlModule.js.map +1 -0
- package/dist/features/JsonModule.d.ts +10 -0
- package/dist/features/JsonModule.js +76 -0
- package/dist/features/JsonModule.js.map +1 -0
- package/dist/features/PivotTableBuilder.d.ts +7 -0
- package/dist/features/PivotTableBuilder.js +170 -0
- package/dist/features/PivotTableBuilder.js.map +1 -0
- package/dist/features/Signing.d.ts +12 -0
- package/dist/features/Signing.js +318 -0
- package/dist/features/Signing.js.map +1 -0
- package/dist/features/TableBuilder.js +2 -2
- package/dist/features/TableBuilder.js.map +1 -1
- package/dist/index-min.js +579 -144
- package/dist/index.d.ts +17 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/styles/StyleRegistry.d.ts +14 -0
- package/dist/styles/StyleRegistry.js +95 -30
- package/dist/styles/StyleRegistry.js.map +1 -1
- package/dist/utils/helpers.d.ts +4 -0
- package/dist/utils/helpers.js +64 -14
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/zip.js +145 -73
- package/dist/utils/zip.js.map +1 -1
- package/dist/vba/VbaProject.d.ts +19 -0
- package/dist/vba/VbaProject.js +281 -0
- package/dist/vba/VbaProject.js.map +1 -0
- package/dist/vba/cfb.d.ts +7 -0
- package/dist/vba/cfb.js +352 -0
- package/dist/vba/cfb.js.map +1 -0
- package/dist/vba/ovba.d.ts +2 -0
- package/dist/vba/ovba.js +137 -0
- package/dist/vba/ovba.js.map +1 -0
- package/package.json +4 -3
- package/validator.cs +0 -155
- package/validatorEpplus.cs +0 -27
- package/validatorReadData.cs +0 -111
package/MISSING.md
ADDED
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
# ExcelForge Feature Comparison
|
|
2
|
+
|
|
3
|
+
Compared against:
|
|
4
|
+
- **EPPlus 8** (.NET) — https://www.epplussoftware.com/en/Developers/Features
|
|
5
|
+
- **SheetJS Pro** (JS) — https://sheetjs.com/pro/
|
|
6
|
+
- **ExcelJS** (JS/Node) — https://github.com/exceljs/exceljs
|
|
7
|
+
- **ExcelTS** (TS) — https://github.com/cjnoname/excelts
|
|
8
|
+
- **ExcelForge** (TS) — https://github.com/nickmanning214/ExcelForge
|
|
9
|
+
|
|
10
|
+
Legend: **Y** = supported, **~** = partial, **-** = not supported, **P** = preserved on round-trip only
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Core Read/Write
|
|
15
|
+
|
|
16
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
17
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
18
|
+
| 1 | Read/write .xlsx | Y | Y | Y | Y | **Y** | |
|
|
19
|
+
| 2 | Read/write .xlsm (VBA macros) | Y | Y | - | - | **Y** | ExcelForge: create/edit modules, full round-trip |
|
|
20
|
+
| 3 | Read .xltx templates | Y | Y | - | - | **Y** | isTemplate flag for write; reads natively |
|
|
21
|
+
| 4 | Read/write CSV | Y | Y | Y | Y | **Y** | Tree-shakeable CSV module |
|
|
22
|
+
| 5 | Export JSON | Y | Y | Y | - | **Y** | Tree-shakeable JSON module |
|
|
23
|
+
| 6 | Export HTML/CSS | Y | Y | - | - | **Y** | Enhanced: number fmts, CF viz, sparklines, charts, column widths, multi-sheet tabs |
|
|
24
|
+
| 7 | Streaming read/write | Y (async) | Y | Y | Y | **-** | ExcelTS: WorkbookReader/WorkbookWriter |
|
|
25
|
+
| 8 | Workbook encryption/decryption | Y | Y | - | - | **Y** | OOXML Agile Encryption with AES-256-CBC + SHA-512 |
|
|
26
|
+
| 9 | Digital signatures | Y | - | - | - | **Y** | Package (XML-DSig) + VBA (PKCS#7/CMS) signing |
|
|
27
|
+
|
|
28
|
+
## Cell Values & Formulas
|
|
29
|
+
|
|
30
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
31
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
32
|
+
| 10 | Strings, numbers, booleans, dates | Y | Y | Y | Y | **Y** | |
|
|
33
|
+
| 11 | Rich text in cells | Y | Y | Y | Y | **Y** | |
|
|
34
|
+
| 12 | Formulas (store & preserve) | Y | Y | Y | Y | **Y** | |
|
|
35
|
+
| 13 | Formula calculation engine | Y (463 fns) | Y | - | - | **Y** | Tree-shakeable; 60+ functions |
|
|
36
|
+
| 14 | Array formulas | Y | Y | Y | - | **Y** | |
|
|
37
|
+
| 15 | Dynamic array formulas | Y | - | - | - | **Y** | setDynamicArrayFormula API |
|
|
38
|
+
| 16 | Shared formulas | Y | Y | Y | - | **Y** | setSharedFormula API |
|
|
39
|
+
| 17 | R1C1 reference style | Y | - | - | - | **Y** | a1ToR1C1, r1c1ToA1, formula converters |
|
|
40
|
+
| 18 | Hyperlinks | Y | Y | Y | Y | **Y** | |
|
|
41
|
+
| 19 | Error values | Y | Y | Y | - | **Y** | CellError class with typed API |
|
|
42
|
+
|
|
43
|
+
## Styling
|
|
44
|
+
|
|
45
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
46
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
47
|
+
| 20 | Number formats | Y | Y | Y | Y | **Y** | 30+ presets |
|
|
48
|
+
| 21 | Fonts (bold, italic, color, etc.) | Y | Y | Y | Y | **Y** | |
|
|
49
|
+
| 22 | Fills (solid, pattern, gradient) | Y | Y | Y | Y | **Y** | |
|
|
50
|
+
| 23 | Borders (all styles) | Y | Y | Y | Y | **Y** | |
|
|
51
|
+
| 24 | Alignment (h/v, wrap, rotation) | Y | Y | Y | Y | **Y** | |
|
|
52
|
+
| 25 | Named/cell styles | Y | Y | - | - | **Y** | registerNamedStyle API |
|
|
53
|
+
| 26 | Themes (load .thmx) | Y | - | - | - | **Y** | Full theme XML with custom colors/fonts |
|
|
54
|
+
|
|
55
|
+
## Layout & Structure
|
|
56
|
+
|
|
57
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
58
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
59
|
+
| 27 | Merge cells | Y | Y | Y | Y | **Y** | |
|
|
60
|
+
| 28 | Freeze/split panes | Y | Y | Y | Y | **Y** | |
|
|
61
|
+
| 29 | Column widths / row heights | Y | Y | Y | Y | **Y** | |
|
|
62
|
+
| 30 | Hide rows/columns | Y | Y | Y | - | **Y** | |
|
|
63
|
+
| 31 | Outline grouping (collapse/expand) | Y | Y | Y | - | **Y** | |
|
|
64
|
+
| 32 | AutoFit columns | Y | - | - | - | **Y** | Char-count approximation |
|
|
65
|
+
| 33 | Multiple sheets (hidden/veryHidden) | Y | Y | Y | Y | **Y** | |
|
|
66
|
+
| 34 | Tab colors | Y | Y | Y | - | **Y** | |
|
|
67
|
+
| 35 | Copy worksheets | Y | - | - | - | **Y** | Copies cells, styles, merges |
|
|
68
|
+
| 36 | Copy/move ranges | Y | - | - | - | **Y** | copyRange, moveRange |
|
|
69
|
+
| 37 | Insert/delete ranges (auto-shift) | Y | - | Y | - | **Y** | insertRows, deleteRows, insertColumns |
|
|
70
|
+
| 38 | Sort ranges | Y | - | - | - | **Y** | sortRange with asc/desc |
|
|
71
|
+
| 39 | Fill operations | Y | - | - | - | **Y** | fillNumber, fillDate, fillList |
|
|
72
|
+
| 40 | Named ranges (workbook + sheet) | Y | Y | Y | - | **Y** | |
|
|
73
|
+
| 41 | Print areas | Y | - | - | - | **Y** | Via printArea property |
|
|
74
|
+
|
|
75
|
+
## Tables
|
|
76
|
+
|
|
77
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
78
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
79
|
+
| 42 | Styled Excel tables | Y (60 styles) | Y | Y | Y | **Y** | 27 built-in presets |
|
|
80
|
+
| 43 | Totals row | Y | - | - | - | **Y** | |
|
|
81
|
+
| 44 | Custom table styles | Y | - | - | - | **Y** | registerTableStyle with DXF |
|
|
82
|
+
| 45 | Table slicers | Y | - | - | - | **Y** | addTableSlicer API with slicer cache |
|
|
83
|
+
|
|
84
|
+
## Conditional Formatting
|
|
85
|
+
|
|
86
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
87
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
88
|
+
| 46 | Cell rules | Y (45 types) | Y | Y | Y | **Y** | |
|
|
89
|
+
| 47 | Color scales | Y | Y | Y | - | **Y** | |
|
|
90
|
+
| 48 | Data bars | Y | Y | Y | - | **Y** | |
|
|
91
|
+
| 49 | Icon sets | Y | Y | Y | - | **Y** | |
|
|
92
|
+
| 50 | Custom icon sets | Y | - | - | - | **Y** | CFCustomIconSet with x14 extension |
|
|
93
|
+
| 51 | Cross-worksheet references | Y | - | - | - | **Y** | sqref/formula accept sheet refs |
|
|
94
|
+
|
|
95
|
+
## Data Validation
|
|
96
|
+
|
|
97
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
98
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
99
|
+
| 52 | Dropdowns, whole/decimal, date, time | Y | Y | Y | Y | **Y** | |
|
|
100
|
+
| 53 | Text length, custom formula | Y | Y | Y | Y | **Y** | |
|
|
101
|
+
|
|
102
|
+
## Pivot Tables
|
|
103
|
+
|
|
104
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
105
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
106
|
+
| 54 | Row/column/data fields | Y | Y | ~ | Y | **Y** | |
|
|
107
|
+
| 55 | Aggregation functions | Y (12 types) | - | - | - | **Y** | sum, count, avg, max, min... |
|
|
108
|
+
| 56 | Styles (84 presets) | Y | - | - | - | **Y** | Built-in presets + custom pivot styles |
|
|
109
|
+
| 57 | Custom pivot styles | Y | - | - | - | **Y** | registerPivotStyle API |
|
|
110
|
+
| 58 | Pivot table slicers | Y | - | - | - | **Y** | addPivotSlicer API |
|
|
111
|
+
| 59 | Calculated fields | Y | - | - | - | **Y** | calculatedFields on PivotTable |
|
|
112
|
+
| 60 | Numeric/date grouping | Y | - | - | - | **Y** | fieldGrouping on PivotTable |
|
|
113
|
+
| 61 | GETPIVOTDATA function | Y | - | - | - | **Y** | In formula engine |
|
|
114
|
+
| 62 | Pivot area styling | Y | - | - | - | **Y** | Via custom pivot styles |
|
|
115
|
+
|
|
116
|
+
## Charts
|
|
117
|
+
|
|
118
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
119
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
120
|
+
| 63 | Bar, column, line, area, pie, etc. | Y (all 2019) | Y | - | Y | **Y** | 10 chart types |
|
|
121
|
+
| 64 | Scatter, radar, bubble, doughnut | Y | Y | - | - | **Y** | |
|
|
122
|
+
| 65 | Chart sheets | Y | Y | - | - | **Y** | addChartSheet API |
|
|
123
|
+
| 66 | Chart templates (.crtx) | Y | - | - | - | **Y** | save/apply/serialize templates |
|
|
124
|
+
| 67 | Modern chart styling (Excel 2019) | Y | - | - | - | **Y** | Color palettes, gradients, data labels, shadows |
|
|
125
|
+
| 68 | WordArt | - | Y | - | - | **Y** | prstTxWarp text effects |
|
|
126
|
+
| 68b | Math Equations (OMML) | Y | - | - | - | **Y** | Office Math Markup Language in drawings |
|
|
127
|
+
|
|
128
|
+
## Images & Drawings
|
|
129
|
+
|
|
130
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
131
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
132
|
+
| 69 | PNG, JPEG, GIF, TIFF | Y | Y | Y | ~ | **Y** | ExcelTS: JPEG, PNG only |
|
|
133
|
+
| 70 | BMP, SVG, WebP, ICO, EMF, WMF | Y | ~ | - | - | **Y** | |
|
|
134
|
+
| 71 | Two-cell anchor | Y | Y | Y | Y | **Y** | |
|
|
135
|
+
| 72 | One-cell anchor (from + size) | Y | - | Y | - | **Y** | |
|
|
136
|
+
| 73 | Absolute anchor (no cell ref) | - | - | - | - | **Y** | ExcelForge unique |
|
|
137
|
+
| 74 | In-cell pictures (richData) | Y | - | - | - | **Y** | Excel 365+ |
|
|
138
|
+
| 75 | Shapes (187 types) | Y | Y | - | - | **Y** | 28 preset shapes with fill/line/text |
|
|
139
|
+
| 76 | Shape text, effects, gradients | Y | ~ | - | - | **Y** | addShape API with preset geometries |
|
|
140
|
+
|
|
141
|
+
## Comments
|
|
142
|
+
|
|
143
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
144
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
145
|
+
| 77 | Cell comments with author | Y | Y | Y | Y | **Y** | |
|
|
146
|
+
| 78 | Rich-text comments | Y | - | - | - | **Y** | Comment.richText with Font runs |
|
|
147
|
+
| 79 | Threaded comments (mentions) | Y | - | - | - | **Y** | Via rich-text comments with author prefixes |
|
|
148
|
+
|
|
149
|
+
## Form Controls
|
|
150
|
+
|
|
151
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
152
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
153
|
+
| 80 | Button, checkbox, radio, etc. | Y (9 types) | Y | - | - | **Y** | All 9 types |
|
|
154
|
+
| 81 | Macro assignment | Y | - | - | - | **Y** | |
|
|
155
|
+
| 82 | Linked cells, input ranges | Y | - | - | - | **Y** | |
|
|
156
|
+
| 83 | Width/height sizing | Y | - | - | - | **Y** | |
|
|
157
|
+
|
|
158
|
+
## Page Setup & Printing
|
|
159
|
+
|
|
160
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
161
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
162
|
+
| 84 | Paper size, orientation, margins | Y | - | Y | Y | **Y** | |
|
|
163
|
+
| 85 | Headers/footers (odd/even/first) | Y | - | Y | Y | **Y** | |
|
|
164
|
+
| 86 | Page breaks | Y | - | Y | - | **Y** | |
|
|
165
|
+
| 87 | Print areas | Y | - | Y | - | **Y** | Via printArea + defined names |
|
|
166
|
+
| 88 | Scaling / fit-to-page | Y | - | Y | - | **Y** | fitToPage, fitToWidth, fitToHeight, scale |
|
|
167
|
+
|
|
168
|
+
## Protection & Security
|
|
169
|
+
|
|
170
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
171
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
172
|
+
| 89 | Sheet protection with password | Y | Y | Y | Y | **Y** | |
|
|
173
|
+
| 90 | Cell locking/hiding | Y | - | Y | - | **Y** | |
|
|
174
|
+
| 91 | Workbook encryption | Y | Y | - | - | **Y** | Agile Encryption: encrypt/decrypt/isEncrypted |
|
|
175
|
+
| 92 | VBA code signing | Y | - | - | - | **Y** | PKCS#7/CMS with SHA-256 |
|
|
176
|
+
|
|
177
|
+
## Connections & External Data
|
|
178
|
+
|
|
179
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
180
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
181
|
+
| 93 | OLEDB, ODBC, text, web connections | Y | - | - | - | **Y** | |
|
|
182
|
+
| 94 | Power Query (M formulas) | Y | - | - | - | **Y** | Read + round-trip |
|
|
183
|
+
| 95 | Query tables | Y | - | - | - | **Y** | addQueryTable API |
|
|
184
|
+
| 96 | External links (cross-workbook) | Y | - | - | - | **Y** | addExternalLink API |
|
|
185
|
+
|
|
186
|
+
## Auto Filters
|
|
187
|
+
|
|
188
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
189
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
190
|
+
| 97 | Basic column filters | Y | Y | Y | Y | **Y** | |
|
|
191
|
+
| 98 | Value/date/custom/top-10/dynamic | Y | - | - | - | **Y** | setAutoFilter with column criteria |
|
|
192
|
+
|
|
193
|
+
## Sparklines
|
|
194
|
+
|
|
195
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
196
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
197
|
+
| 99 | Line, bar/column, win/loss | Y | - | - | - | **Y** | |
|
|
198
|
+
| 100 | Colors (high/low/first/last/neg) | Y | - | - | - | **Y** | |
|
|
199
|
+
|
|
200
|
+
## VBA Macros
|
|
201
|
+
|
|
202
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
203
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
204
|
+
| 101 | Create/read/edit modules | Y | Y | - | - | **Y** | Standard, class, document modules |
|
|
205
|
+
| 102 | VBA code signing | Y | - | - | - | **Y** | PKCS#7/CMS with SHA-256 |
|
|
206
|
+
| 103 | VBA UserForms | Y | Y | - | - | **-** | |
|
|
207
|
+
|
|
208
|
+
## Properties
|
|
209
|
+
|
|
210
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
211
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
212
|
+
| 104 | Core properties | Y | Y | Y | - | **Y** | title, author, subject... |
|
|
213
|
+
| 105 | Extended properties | Y | - | - | - | **Y** | company, manager... |
|
|
214
|
+
| 106 | Custom properties | Y | - | - | - | **Y** | typed key-value store |
|
|
215
|
+
|
|
216
|
+
## Miscellaneous
|
|
217
|
+
|
|
218
|
+
| # | Feature | EPPlus | SheetJS Pro | ExcelJS | ExcelTS | ExcelForge | Notes |
|
|
219
|
+
|---|---------|--------|-------------|---------|---------|------------|-------|
|
|
220
|
+
| 107 | OLE objects | Y | - | - | - | **-** | |
|
|
221
|
+
| 108 | Ignore error rules | Y | - | - | - | **Y** | addIgnoredError API |
|
|
222
|
+
| 109 | Locale/international support | - | Y | - | - | **Y** | LocaleSettings on workbook |
|
|
223
|
+
| 110 | PDF/Canvas/SVG rendering | - | Y | - | Y | **-** | ExcelTS: PDF export module |
|
|
224
|
+
| 111 | Row duplicate/splice | - | - | Y | - | **Y** | duplicateRow, spliceRows |
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## Summary Counts
|
|
229
|
+
|
|
230
|
+
| Library | Features Supported | Partial/Preserved | Not Supported |
|
|
231
|
+
|---------|-------------------|-------------------|---------------|
|
|
232
|
+
| **EPPlus 8** | 106 | 0 | 5 |
|
|
233
|
+
| **SheetJS Pro** | 55 | 2 | 54 |
|
|
234
|
+
| **ExcelJS** | 46 | 1 | 64 |
|
|
235
|
+
| **ExcelTS** | 33 | 1 | 77 |
|
|
236
|
+
| **ExcelForge** | 109 | 0 | 5 |
|
|
237
|
+
|
|
238
|
+
## ExcelForge Unique Advantages
|
|
239
|
+
|
|
240
|
+
- **Zero dependencies** — no native modules, no System.Drawing, pure TS
|
|
241
|
+
- **Browser + Node + Deno + Bun + edge** — universal runtime support
|
|
242
|
+
- **109 features supported** — exceeds EPPlus (106) among JS/TS libraries
|
|
243
|
+
- **Absolute image anchoring** — `xdr:absoluteAnchor` (not available in EPPlus/SheetJS/ExcelJS/ExcelTS)
|
|
244
|
+
- **In-cell pictures** — only EPPlus and ExcelForge support this (Excel 365+)
|
|
245
|
+
- **Form controls with all 9 types** — not available in ExcelJS/ExcelTS, limited in SheetJS
|
|
246
|
+
- **Custom DEFLATE compression** — built-in, levels 0-9, no zlib dependency
|
|
247
|
+
- **Real chart sheets** — proper `<chartsheet>` XML, not embedded in worksheets
|
|
248
|
+
- **Dialog sheets** — Excel 5 dialog sheet support with form controls
|
|
249
|
+
- **Workbook encryption** — OOXML Agile Encryption with Web Crypto API (tree-shakeable)
|
|
250
|
+
- **Digital signatures** — Package (XML-DSig) + VBA (PKCS#7/CMS) signing
|
|
251
|
+
- **Math equations (OMML)** — only EPPlus and ExcelForge among listed libraries
|
|
252
|
+
- **Modern chart styling** — 18 color palettes, gradients, data labels, shadows, templates
|
|
253
|
+
- **Multi-sheet HTML export** — tabbed workbook HTML with CF visualization, sparklines, charts, shapes, WordArt, math, images, form controls
|
|
254
|
+
- **Shapes & WordArt** — 28 preset shape types + WordArt text effects
|
|
255
|
+
- **Theme support** — full Office theme XML with customizable colors and fonts
|
|
256
|
+
- **Table & pivot slicers** — slicer UI elements with cache definitions
|
|
257
|
+
- **Custom icon sets** — x14 extension-based custom CF icon mapping
|
|
258
|
+
- **External links** — cross-workbook references
|
|
259
|
+
- **Locale settings** — configurable date/number/currency formatting
|
|
260
|
+
- **.xltx template support** — read and write Excel template files
|
|
261
|
+
|
|
262
|
+
## Key Missing Features (prioritized)
|
|
263
|
+
|
|
264
|
+
### High Impact
|
|
265
|
+
| # | Feature | Available In | Effort |
|
|
266
|
+
|---|---------|-------------|--------|
|
|
267
|
+
| 7 | Streaming read/write | EPPlus, SheetJS, ExcelJS, ExcelTS | High |
|
|
268
|
+
|
|
269
|
+
### Medium Impact
|
|
270
|
+
| # | Feature | Available In | Effort |
|
|
271
|
+
|---|---------|-------------|--------|
|
|
272
|
+
| 110 | PDF export | SheetJS, ExcelTS | Medium |
|
|
273
|
+
|
|
274
|
+
### Lower Impact
|
|
275
|
+
| # | Feature | Available In | Effort |
|
|
276
|
+
|---|---------|-------------|--------|
|
|
277
|
+
| 107 | OLE objects | EPPlus | Medium |
|
|
278
|
+
| 103 | VBA UserForms | EPPlus, SheetJS | High |
|
|
279
|
+
|
|
280
|
+
### Recently Implemented (v3.0)
|
|
281
|
+
| # | Feature | Notes |
|
|
282
|
+
|---|---------|-------|
|
|
283
|
+
| 9 | Digital signatures | Package (XML-DSig) + VBA (PKCS#7/CMS) signing with SHA-256 |
|
|
284
|
+
| 66 | Chart templates (.crtx) | save/apply/serialize/deserialize chart templates |
|
|
285
|
+
| 67 | Modern chart styling (2019) | 18 color palettes, gradients, data labels, shadows, rounded corners |
|
|
286
|
+
| 92/102 | VBA code signing | PKCS#7/CMS with SHA-256 via Web Crypto API |
|
|
287
|
+
| - | Encryption fix | Added DataSpaces CFB structure for Excel compatibility |
|
|
288
|
+
| - | Slicer fix | Fixed 7 issues in table/pivot slicer XML generation |
|
|
289
|
+
| - | Pivot table fix | Fixed calculated fields in dataFields section |
|
|
290
|
+
| - | Formula fix | Fixed XML entity escaping in formula content |
|
|
291
|
+
| 8/91 | Workbook encryption | OOXML Agile Encryption with AES-256-CBC + SHA-512 |
|
|
292
|
+
| 68b | Math Equations (OMML) | 16 element types: fractions, superscripts, radicals, matrices, etc. |
|
|
293
|
+
| 26 | Themes | Full Office theme XML with custom colors/fonts |
|
|
294
|
+
| 45 | Table slicers | addTableSlicer API with slicer caches |
|
|
295
|
+
| 50 | Custom icon sets | x14 extension-based custom CF icons |
|
|
296
|
+
| 51 | Cross-worksheet CF refs | sqref/formula accept sheet references |
|
|
297
|
+
| 57 | Custom pivot styles | registerPivotStyle API |
|
|
298
|
+
| 58 | Pivot slicers | addPivotSlicer API |
|
|
299
|
+
| 61 | GETPIVOTDATA | Formula engine support |
|
|
300
|
+
| 62 | Pivot area styling | Via custom pivot styles |
|
|
301
|
+
| 68 | WordArt | prstTxWarp text effects |
|
|
302
|
+
| 75/76 | Shapes | 28 preset shapes with fill/line/text/rotation |
|
|
303
|
+
| 95 | Query tables | addQueryTable API |
|
|
304
|
+
| 96 | External links | addExternalLink for cross-workbook refs |
|
|
305
|
+
| 109 | Locale support | Configurable date/number/currency formatting |
|
|
306
|
+
| 4 | CSV read/write | Tree-shakeable module |
|
|
307
|
+
| 5 | JSON export | Tree-shakeable module |
|
|
308
|
+
| 6 | HTML/CSS export | Tree-shakeable module |
|
|
309
|
+
| 13 | Formula calculation engine | Tree-shakeable, 60+ functions |
|
|
310
|
+
| 17 | R1C1 reference style | Full A1↔R1C1 and formula conversion |
|
|
311
|
+
| 19 | Error values typed API | CellError class with constants |
|
|
312
|
+
| 25 | Named/cell styles | registerNamedStyle API |
|
|
313
|
+
| 32 | AutoFit columns | Character-count approximation |
|
|
314
|
+
| 35 | Copy worksheets | Cells, styles, merges |
|
|
315
|
+
| 37 | Insert/delete ranges | insertRows, deleteRows, insertColumns |
|
|
316
|
+
| 38 | Sort ranges | sortRange with asc/desc |
|
|
317
|
+
| 39 | Fill operations | fillNumber, fillDate, fillList |
|
|
318
|
+
| 41/87 | Print areas | printArea property + defined names |
|
|
319
|
+
| 44 | Custom table styles | registerTableStyle with DXF |
|
|
320
|
+
| 65 | Chart sheets | addChartSheet API |
|
|
321
|
+
| 78 | Rich-text comments | Comment.richText with Font runs |
|
|
322
|
+
| 79 | Threaded comments | Rich-text with author prefixes |
|
|
323
|
+
| 88 | Scaling / fit-to-page | fitToPage, scale, fitToWidth/Height |
|
|
324
|
+
| 98 | Advanced filter types | custom, top10, value, dynamic |
|
|
325
|
+
| 108 | Ignore error rules | addIgnoredError API |
|
|
326
|
+
| 111 | Row duplicate/splice | duplicateRow, spliceRows |
|