@node-projects/excelforge 2.4.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.
Files changed (71) hide show
  1. package/.github/FUNDING.yml +4 -0
  2. package/MISSING.md +326 -0
  3. package/README.md +484 -12
  4. package/dist/core/SharedStrings.js +6 -2
  5. package/dist/core/SharedStrings.js.map +1 -1
  6. package/dist/core/Workbook.d.ts +41 -1
  7. package/dist/core/Workbook.js +773 -57
  8. package/dist/core/Workbook.js.map +1 -1
  9. package/dist/core/WorkbookReader.d.ts +18 -4
  10. package/dist/core/WorkbookReader.js +1386 -20
  11. package/dist/core/WorkbookReader.js.map +1 -1
  12. package/dist/core/Worksheet.d.ts +130 -2
  13. package/dist/core/Worksheet.js +792 -63
  14. package/dist/core/Worksheet.js.map +1 -1
  15. package/dist/core/types.d.ts +287 -5
  16. package/dist/core/types.js +12 -1
  17. package/dist/core/types.js.map +1 -1
  18. package/dist/features/ChartBuilder.d.ts +9 -1
  19. package/dist/features/ChartBuilder.js +140 -14
  20. package/dist/features/ChartBuilder.js.map +1 -1
  21. package/dist/features/CsvModule.d.ts +11 -0
  22. package/dist/features/CsvModule.js +137 -0
  23. package/dist/features/CsvModule.js.map +1 -0
  24. package/dist/features/Encryption.d.ts +6 -0
  25. package/dist/features/Encryption.js +806 -0
  26. package/dist/features/Encryption.js.map +1 -0
  27. package/dist/features/FormControlBuilder.d.ts +6 -0
  28. package/dist/features/FormControlBuilder.js +135 -0
  29. package/dist/features/FormControlBuilder.js.map +1 -0
  30. package/dist/features/FormulaEngine.d.ts +22 -0
  31. package/dist/features/FormulaEngine.js +498 -0
  32. package/dist/features/FormulaEngine.js.map +1 -0
  33. package/dist/features/HtmlModule.d.ts +21 -0
  34. package/dist/features/HtmlModule.js +1417 -0
  35. package/dist/features/HtmlModule.js.map +1 -0
  36. package/dist/features/JsonModule.d.ts +10 -0
  37. package/dist/features/JsonModule.js +76 -0
  38. package/dist/features/JsonModule.js.map +1 -0
  39. package/dist/features/PivotTableBuilder.d.ts +7 -0
  40. package/dist/features/PivotTableBuilder.js +170 -0
  41. package/dist/features/PivotTableBuilder.js.map +1 -0
  42. package/dist/features/Signing.d.ts +12 -0
  43. package/dist/features/Signing.js +318 -0
  44. package/dist/features/Signing.js.map +1 -0
  45. package/dist/features/TableBuilder.js +2 -2
  46. package/dist/features/TableBuilder.js.map +1 -1
  47. package/dist/index-min.js +579 -144
  48. package/dist/index.d.ts +17 -1
  49. package/dist/index.js +10 -0
  50. package/dist/index.js.map +1 -1
  51. package/dist/styles/StyleRegistry.d.ts +14 -0
  52. package/dist/styles/StyleRegistry.js +95 -30
  53. package/dist/styles/StyleRegistry.js.map +1 -1
  54. package/dist/utils/helpers.d.ts +4 -0
  55. package/dist/utils/helpers.js +64 -14
  56. package/dist/utils/helpers.js.map +1 -1
  57. package/dist/utils/zip.js +145 -73
  58. package/dist/utils/zip.js.map +1 -1
  59. package/dist/vba/VbaProject.d.ts +19 -0
  60. package/dist/vba/VbaProject.js +281 -0
  61. package/dist/vba/VbaProject.js.map +1 -0
  62. package/dist/vba/cfb.d.ts +7 -0
  63. package/dist/vba/cfb.js +352 -0
  64. package/dist/vba/cfb.js.map +1 -0
  65. package/dist/vba/ovba.d.ts +2 -0
  66. package/dist/vba/ovba.js +137 -0
  67. package/dist/vba/ovba.js.map +1 -0
  68. package/package.json +4 -3
  69. package/validator.cs +0 -155
  70. package/validatorEpplus.cs +0 -27
  71. package/validatorReadData.cs +0 -111
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cfb.js","sourceRoot":"","sources":["../../src/vba/cfb.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function compressOvba(src: Uint8Array): Uint8Array;
2
+ export declare function decompressOvba(data: Uint8Array): Uint8Array;
@@ -0,0 +1,137 @@
1
+ function bitCount(pos) {
2
+ if (pos <= 16)
3
+ return 4;
4
+ if (pos <= 32)
5
+ return 5;
6
+ if (pos <= 64)
7
+ return 6;
8
+ if (pos <= 128)
9
+ return 7;
10
+ if (pos <= 256)
11
+ return 8;
12
+ if (pos <= 512)
13
+ return 9;
14
+ if (pos <= 1024)
15
+ return 10;
16
+ if (pos <= 2048)
17
+ return 11;
18
+ return 12;
19
+ }
20
+ export function compressOvba(src) {
21
+ const out = [0x01];
22
+ let srcPos = 0;
23
+ while (srcPos < src.length) {
24
+ const chunkStart = srcPos;
25
+ const chunkEnd = Math.min(srcPos + 4096, src.length);
26
+ const compressed = compressChunk(src, chunkStart, chunkEnd);
27
+ if (compressed.length < 4096) {
28
+ const totalChunkSize = compressed.length + 2;
29
+ const header = 0xB000 | ((totalChunkSize - 3) & 0x0FFF);
30
+ out.push(header & 0xFF, (header >> 8) & 0xFF);
31
+ for (const b of compressed)
32
+ out.push(b);
33
+ }
34
+ else {
35
+ const header = 0x3FFF;
36
+ out.push(header & 0xFF, (header >> 8) & 0xFF);
37
+ for (let i = chunkStart; i < chunkEnd; i++)
38
+ out.push(src[i]);
39
+ for (let i = chunkEnd - chunkStart; i < 4096; i++)
40
+ out.push(0);
41
+ }
42
+ srcPos = chunkEnd;
43
+ }
44
+ return new Uint8Array(out);
45
+ }
46
+ function compressChunk(src, start, end) {
47
+ const out = [];
48
+ let dp = 0;
49
+ while (start + dp < end) {
50
+ let flagByte = 0;
51
+ const flagIdx = out.length;
52
+ out.push(0);
53
+ for (let bit = 0; bit < 8 && start + dp < end; bit++) {
54
+ if (dp === 0) {
55
+ out.push(src[start]);
56
+ dp++;
57
+ continue;
58
+ }
59
+ const bc = bitCount(dp);
60
+ const maxOff = 1 << bc;
61
+ const lenBits = 16 - bc;
62
+ const maxLen = ((1 << lenBits) - 1) + 3;
63
+ const searchStart = Math.max(0, dp - maxOff);
64
+ let bestOff = 0, bestLen = 0;
65
+ for (let s = searchStart; s < dp; s++) {
66
+ let len = 0;
67
+ while (dp + len < end - start && len < maxLen &&
68
+ src[start + s + len] === src[start + dp + len])
69
+ len++;
70
+ if (len > bestLen) {
71
+ bestLen = len;
72
+ bestOff = dp - s;
73
+ }
74
+ }
75
+ if (bestLen >= 3) {
76
+ flagByte |= 1 << bit;
77
+ const token = ((bestOff - 1) << lenBits) | (bestLen - 3);
78
+ out.push(token & 0xFF, (token >> 8) & 0xFF);
79
+ dp += bestLen;
80
+ }
81
+ else {
82
+ out.push(src[start + dp]);
83
+ dp++;
84
+ }
85
+ }
86
+ out[flagIdx] = flagByte;
87
+ }
88
+ return out;
89
+ }
90
+ export function decompressOvba(data) {
91
+ if (data.length === 0 || data[0] !== 0x01)
92
+ throw new Error('Invalid OVBA compressed container (bad signature)');
93
+ const out = [];
94
+ let pos = 1;
95
+ while (pos < data.length) {
96
+ if (pos + 1 >= data.length)
97
+ break;
98
+ const header = data[pos] | (data[pos + 1] << 8);
99
+ pos += 2;
100
+ const chunkSize = (header & 0x0FFF) + 3;
101
+ const isCompressed = (header >> 15) & 1;
102
+ const chunkDataSize = chunkSize - 2;
103
+ const chunkEnd = pos + chunkDataSize;
104
+ if (!isCompressed) {
105
+ for (let i = 0; i < 4096 && pos < data.length; i++)
106
+ out.push(data[pos++]);
107
+ pos = Math.max(pos, chunkEnd);
108
+ }
109
+ else {
110
+ const chunkDecompStart = out.length;
111
+ while (pos < chunkEnd && pos < data.length) {
112
+ const flagByte = data[pos++];
113
+ for (let bit = 0; bit < 8 && pos < chunkEnd && pos < data.length; bit++) {
114
+ if ((flagByte & (1 << bit)) === 0) {
115
+ out.push(data[pos++]);
116
+ }
117
+ else {
118
+ if (pos + 1 >= data.length)
119
+ break;
120
+ const token = data[pos] | (data[pos + 1] << 8);
121
+ pos += 2;
122
+ const dp = out.length - chunkDecompStart;
123
+ const bc = bitCount(dp);
124
+ const lb = 16 - bc;
125
+ const off = (token >> lb) + 1;
126
+ const len = (token & ((1 << lb) - 1)) + 3;
127
+ const copyStart = out.length - off;
128
+ for (let i = 0; i < len; i++)
129
+ out.push(out[copyStart + i]);
130
+ }
131
+ }
132
+ }
133
+ }
134
+ }
135
+ return new Uint8Array(out);
136
+ }
137
+ //# sourceMappingURL=ovba.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ovba.js","sourceRoot":"","sources":["../../src/vba/ovba.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@node-projects/excelforge",
3
- "version": "2.4.0",
3
+ "version": "3.0.0",
4
4
  "description": "A **complete TypeScript library** for reading and writing Excel `.xlsx` files with **zero external dependencies**. Works in browsers, Node.js, Deno, Bun, and edge runtimes.",
5
5
  "homepage": "https://github.com/node-projects/excelForge#readme",
6
6
  "bugs": {
@@ -16,13 +16,14 @@
16
16
  "main": "./dist/index.js",
17
17
  "scripts": {
18
18
  "test": "node ./dist/test/examples.js",
19
+ "test2": "node ./dist/test/test_features",
19
20
  "build": "tsc",
20
21
  "prepublishOnly": "npm run build && npm run bundle",
21
22
  "bundle": "esbuild ./dist/index.js --format=esm --minify --external:fs/promises --external:zlib --platform=neutral --bundle --outfile=./dist/index-min.js"
22
23
  },
23
24
  "devDependencies": {
24
- "esbuild": "^0.25.10",
25
- "typescript": "^5.9.3",
25
+ "esbuild": "^0.27.4",
26
+ "typescript": "^6.0.2",
26
27
  "zlib": "^1.0.5"
27
28
  }
28
29
  }
package/validator.cs DELETED
@@ -1,155 +0,0 @@
1
- #!/usr/bin/env dotnet run
2
-
3
- #:package DocumentFormat.OpenXml@3.0.2
4
-
5
- #pragma warning disable
6
- using System.IO.Compression;
7
- using System.Text.Json;
8
- using System.Text.Json.Serialization.Metadata;
9
- using System.Xml;
10
- using DocumentFormat.OpenXml.Packaging;
11
- using DocumentFormat.OpenXml.Validation;
12
-
13
- var result = new List<object>();
14
-
15
- if (args.Length == 0)
16
- {
17
- Console.WriteLine("Usage: dotnet run validator.cs <file.xlsx>");
18
- Environment.Exit(1);
19
- }
20
-
21
- var file = args[0];
22
-
23
- if (!File.Exists(file))
24
- {
25
- Console.WriteLine("File not found.");
26
- Environment.Exit(1);
27
- }
28
-
29
- // ------------------------
30
- // 1. ZIP + XML inspection
31
- // ------------------------
32
- try
33
- {
34
- using var zip = ZipFile.OpenRead(file);
35
-
36
- foreach (var entry in zip.Entries)
37
- {
38
- try
39
- {
40
- using var stream = entry.Open();
41
- using var ms = new MemoryStream();
42
- stream.CopyTo(ms);
43
- ms.Position = 0;
44
-
45
- if (entry.FullName.EndsWith(".xml", StringComparison.OrdinalIgnoreCase))
46
- {
47
- try
48
- {
49
- var settings = new XmlReaderSettings
50
- {
51
- DtdProcessing = DtdProcessing.Prohibit,
52
- IgnoreWhitespace = true,
53
- IgnoreComments = true
54
- };
55
-
56
- ms.Position = 0;
57
- using var reader = XmlReader.Create(ms, settings);
58
- while (reader.Read()) { }
59
- }
60
- catch (Exception ex)
61
- {
62
- result.Add(new
63
- {
64
- type = "xml",
65
- entry = entry.FullName,
66
- error = ex.Message
67
- });
68
- }
69
- }
70
- }
71
- catch (Exception ex)
72
- {
73
- result.Add(new
74
- {
75
- type = "zip-entry",
76
- entry = entry.FullName,
77
- error = ex.Message
78
- });
79
- }
80
- }
81
- }
82
- catch (Exception ex)
83
- {
84
- result.Add(new
85
- {
86
- type = "zip",
87
- error = ex.Message
88
- });
89
-
90
- PrintAndExit(result);
91
- }
92
-
93
- // ------------------------
94
- // 2. Attempt OpenXML validation if possible
95
- // ------------------------
96
- try
97
- {
98
- using var doc = SpreadsheetDocument.Open(file, false);
99
- var validator = new OpenXmlValidator();
100
- var errors = validator.Validate(doc);
101
-
102
- foreach (var e in errors)
103
- {
104
- result.Add(new
105
- {
106
- type = "openxml",
107
- description = e.Description,
108
- part = e.Part?.Uri?.ToString(),
109
- path = e.Path?.XPath,
110
- errorType = e.ErrorType.ToString(),
111
- node = e.Node?.OuterXml,
112
- relatedNode = e.RelatedNode?.OuterXml
113
- });
114
- }
115
- }
116
- catch (Exception ex)
117
- {
118
- // Report all nested exceptions for OpenXML
119
- int level = 0;
120
- var current = ex;
121
- while (current != null)
122
- {
123
- result.Add(new
124
- {
125
- type = "openxml-exception",
126
- level,
127
- exception = current.GetType().Name,
128
- message = current.Message,
129
- innerMessage = ex.InnerException?.Message
130
- });
131
-
132
- current = current.InnerException;
133
- level++;
134
- }
135
- }
136
-
137
- // ------------------------
138
- // 3. Output JSON + exit code
139
- // ------------------------
140
- PrintAndExit(result);
141
-
142
- // ------------------------
143
- void PrintAndExit(List<object> result)
144
- {
145
- var options = new JsonSerializerOptions
146
- {
147
- WriteIndented = true,
148
- TypeInfoResolver = new DefaultJsonTypeInfoResolver()
149
- };
150
-
151
- string json = JsonSerializer.Serialize(result, options);
152
- Console.WriteLine(json);
153
-
154
- Environment.Exit(result.Count == 0 ? 0 : 1);
155
- }
@@ -1,27 +0,0 @@
1
- #!/usr/bin/env dotnet run
2
- #:package EPPlus@8.5.0
3
-
4
- #pragma warning disable
5
-
6
- using OfficeOpenXml;
7
-
8
- if (args.Length == 0)
9
- {
10
- Console.WriteLine("Usage: dotnet run validator-epplus.cs <file.xlsx>");
11
- return;
12
- }
13
-
14
- var file = args[0];
15
-
16
- ExcelPackage.License.SetNonCommercialOrganization("NonCommercialOrganization:@node-projects");
17
-
18
- try
19
- {
20
- using var package = new ExcelPackage(new FileInfo(file));
21
- Console.WriteLine("EPPlus opened the file successfully.");
22
- }
23
- catch (Exception ex)
24
- {
25
- Console.WriteLine("EPPlus error:");
26
- Console.WriteLine(ex.ToString());
27
- }
@@ -1,111 +0,0 @@
1
- #!/usr/bin/env dotnet run
2
-
3
- #:package DocumentFormat.OpenXml@3.0.2
4
-
5
- #pragma warning disable
6
- using System.Text.Json;
7
- using System.Text.Json.Serialization.Metadata;
8
- using DocumentFormat.OpenXml.Packaging;
9
- using DocumentFormat.OpenXml.Spreadsheet;
10
-
11
- // Usage: dotnet run validatorReadData.cs <file.xlsx> <sheetName> <row> <colStart> <colEnd>
12
- // Reads a single row from the given sheet and outputs cell values as JSON array.
13
- // Example: dotnet run validatorReadData.cs output/20_loaded_table.xlsx ErrorsAndWarnings 10000 1 12
14
-
15
- if (args.Length < 5)
16
- {
17
- Console.Error.WriteLine("Usage: dotnet run validatorReadData.cs <file> <sheet> <row> <colStart> <colEnd>");
18
- Environment.Exit(1);
19
- }
20
-
21
- var file = args[0];
22
- var sheetName = args[1];
23
- var targetRow = int.Parse(args[2]);
24
- var colStart = int.Parse(args[3]);
25
- var colEnd = int.Parse(args[4]);
26
-
27
- if (!File.Exists(file))
28
- {
29
- Console.Error.WriteLine("File not found: " + file);
30
- Environment.Exit(1);
31
- }
32
-
33
- using var doc = SpreadsheetDocument.Open(file, false);
34
- var wbPart = doc.WorkbookPart!;
35
-
36
- // Find sheet by name
37
- var sheet = wbPart.Workbook.Sheets!.Elements<Sheet>()
38
- .FirstOrDefault(s => s.Name?.Value == sheetName);
39
-
40
- if (sheet == null)
41
- {
42
- Console.Error.WriteLine("Sheet not found: " + sheetName);
43
- Environment.Exit(1);
44
- }
45
-
46
- var wsPart = (WorksheetPart)wbPart.GetPartById(sheet.Id!.Value!);
47
- var sheetData = wsPart.Worksheet.GetFirstChild<SheetData>()!;
48
-
49
- // Get shared strings
50
- var sstPart = wbPart.SharedStringTablePart;
51
- var sst = sstPart?.SharedStringTable;
52
-
53
- // Find the target row
54
- var rowEl = sheetData.Elements<Row>().FirstOrDefault(r => r.RowIndex?.Value == (uint)targetRow);
55
-
56
- var result = new List<object?>();
57
-
58
- for (int col = colStart; col <= colEnd; col++)
59
- {
60
- string colLetter = ColToLetter(col);
61
- string cellRef = colLetter + targetRow;
62
-
63
- Cell? cell = rowEl?.Elements<Cell>().FirstOrDefault(c => c.CellReference?.Value == cellRef);
64
- if (cell == null || cell.CellValue == null)
65
- {
66
- result.Add(null);
67
- continue;
68
- }
69
-
70
- string raw = cell.CellValue.Text;
71
- var dataType = cell.DataType?.Value;
72
-
73
- if (dataType == CellValues.SharedString)
74
- {
75
- int idx = int.Parse(raw);
76
- var item = sst?.Elements<SharedStringItem>().ElementAt(idx);
77
- result.Add(item?.InnerText ?? raw);
78
- }
79
- else if (dataType == CellValues.Boolean)
80
- {
81
- result.Add(raw == "1");
82
- }
83
- else
84
- {
85
- // Try numeric
86
- if (double.TryParse(raw, System.Globalization.NumberStyles.Any,
87
- System.Globalization.CultureInfo.InvariantCulture, out var num))
88
- result.Add(num);
89
- else
90
- result.Add(raw);
91
- }
92
- }
93
-
94
- var options = new JsonSerializerOptions
95
- {
96
- WriteIndented = true,
97
- TypeInfoResolver = new DefaultJsonTypeInfoResolver()
98
- };
99
- Console.WriteLine(JsonSerializer.Serialize(result, options));
100
-
101
- static string ColToLetter(int col)
102
- {
103
- string s = "";
104
- while (col > 0)
105
- {
106
- int r = (col - 1) % 26;
107
- s = (char)('A' + r) + s;
108
- col = (col - 1) / 26;
109
- }
110
- return s;
111
- }