@justybase/spreadsheet-tasks 1.3.2 → 2.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/CHANGELOG.md +38 -0
- package/README.md +25 -16
- package/browser/browser-spreadsheet.js +3037 -0
- package/browser/justybase-spreadsheet.min.js +36 -0
- package/dist/cjs/index.d.ts +399 -0
- package/dist/cjs/index.js +3944 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/esm/index.js +3889 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/docs/API.md +8 -9
- package/docs/PACKAGING.md +32 -0
- package/docs/PUBLISHING.md +8 -1
- package/examples/basic-read.ts +1 -1
- package/examples/formats-verify.ts +1 -2
- package/examples/large-dataset.ts +1 -1
- package/package.json +29 -14
- package/dist/BiffReaderWriter.d.ts +0 -44
- package/dist/BiffReaderWriter.d.ts.map +0 -1
- package/dist/BiffReaderWriter.js +0 -282
- package/dist/BiffReaderWriter.js.map +0 -1
- package/dist/BigBuffer.d.ts +0 -24
- package/dist/BigBuffer.d.ts.map +0 -1
- package/dist/BigBuffer.js +0 -120
- package/dist/BigBuffer.js.map +0 -1
- package/dist/ExcelReaderAbstract.d.ts +0 -17
- package/dist/ExcelReaderAbstract.d.ts.map +0 -1
- package/dist/ExcelReaderAbstract.js +0 -25
- package/dist/ExcelReaderAbstract.js.map +0 -1
- package/dist/Formats.d.ts +0 -34
- package/dist/Formats.d.ts.map +0 -1
- package/dist/Formats.js +0 -48
- package/dist/Formats.js.map +0 -1
- package/dist/ReaderFactory.d.ts +0 -6
- package/dist/ReaderFactory.d.ts.map +0 -1
- package/dist/ReaderFactory.js +0 -56
- package/dist/ReaderFactory.js.map +0 -1
- package/dist/XlsbReader.d.ts +0 -24
- package/dist/XlsbReader.d.ts.map +0 -1
- package/dist/XlsbReader.js +0 -186
- package/dist/XlsbReader.js.map +0 -1
- package/dist/XlsbWriter.d.ts +0 -80
- package/dist/XlsbWriter.d.ts.map +0 -1
- package/dist/XlsbWriter.js +0 -964
- package/dist/XlsbWriter.js.map +0 -1
- package/dist/XlsxReader.d.ts +0 -30
- package/dist/XlsxReader.d.ts.map +0 -1
- package/dist/XlsxReader.js +0 -341
- package/dist/XlsxReader.js.map +0 -1
- package/dist/XlsxWriter.d.ts +0 -51
- package/dist/XlsxWriter.d.ts.map +0 -1
- package/dist/XlsxWriter.js +0 -632
- package/dist/XlsxWriter.js.map +0 -1
- package/dist/index.d.ts +0 -10
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -29
- package/dist/index.js.map +0 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project are documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [2.0.0] - 2026-07-25
|
|
9
|
+
|
|
10
|
+
### Breaking
|
|
11
|
+
|
|
12
|
+
- `XlsbReader.read()` is now `async` and returns `Promise<boolean>` (same as `XlsxReader`).
|
|
13
|
+
Update loops from `while (reader.read())` to `while (await reader.read())`.
|
|
14
|
+
- Package entry points moved under `dist/cjs` and `dist/esm` with an `exports` map.
|
|
15
|
+
Most consumers of `@justybase/spreadsheet-tasks` need no import path changes.
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- `CellValue` / `PrimitiveCellValue` types for writer and reader cell APIs
|
|
20
|
+
- Shared writer helpers: `sanitizeSheetName`, column-width helpers, `StreamingSheetState`
|
|
21
|
+
- Dual package build (CJS + ESM) via `tsup`
|
|
22
|
+
- Browser sources under `src/browser/` with `npm run build:browser`
|
|
23
|
+
- `docs/PACKAGING.md` (ZIP library rationale + dual package notes)
|
|
24
|
+
- Dist surface smoke test (`npm run test:dist`)
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- `XlsbWriter` / `XlsxWriter` share sanitization, autofit, and streaming state helpers
|
|
29
|
+
- Tests import from `src/` (published surface still verified via `test:dist`)
|
|
30
|
+
- ZIP type definitions use `@types/*` only (hand-written ambient modules removed)
|
|
31
|
+
|
|
32
|
+
### Browser
|
|
33
|
+
|
|
34
|
+
- Source of truth is TypeScript in `src/browser/`; `browser/*.js` writer sources are generated bundles
|
|
35
|
+
|
|
36
|
+
## [1.3.2] - previous
|
|
37
|
+
|
|
38
|
+
See git history for 1.x changes.
|
package/README.md
CHANGED
|
@@ -24,37 +24,44 @@ A high-performance TypeScript library for reading and writing Excel files in XLS
|
|
|
24
24
|
| Read (50K rows) | 118 ms | 276 ms | **2.3x faster** |
|
|
25
25
|
| File Size | 1.49 MB | 2.83 MB | **47% smaller** |
|
|
26
26
|
|
|
27
|
-
##
|
|
27
|
+
## Installation
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
30
|
npm install @justybase/spreadsheet-tasks
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
CJS and ESM are both supported:
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
```js
|
|
36
|
+
const { XlsbWriter } = require('@justybase/spreadsheet-tasks');
|
|
37
|
+
import { XlsbWriter } from '@justybase/spreadsheet-tasks';
|
|
38
|
+
```
|
|
36
39
|
|
|
37
|
-
|
|
40
|
+
## Browser Support & CDN (Zero Dependencies)
|
|
41
|
+
|
|
42
|
+
Browser writers live in TypeScript under `src/browser/` and are bundled with:
|
|
38
43
|
|
|
39
44
|
```bash
|
|
40
|
-
|
|
45
|
+
npm run build:browser
|
|
41
46
|
```
|
|
42
47
|
|
|
43
|
-
|
|
48
|
+
This produces:
|
|
49
|
+
|
|
50
|
+
- `browser/justybase-spreadsheet.min.js` — IIFE (`JustybaseSpreadsheet` global)
|
|
51
|
+
- `browser/browser-spreadsheet.js` — ESM for local demos (`demo.html`, `test.html`)
|
|
44
52
|
|
|
45
53
|
```html
|
|
46
54
|
<script type="module">
|
|
47
|
-
import { downloadXlsb, downloadXlsx } from '
|
|
48
|
-
|
|
49
|
-
const headers = [
|
|
55
|
+
import { downloadXlsb, downloadXlsx, F } from './browser-spreadsheet.js';
|
|
56
|
+
|
|
57
|
+
const headers = ['ID', 'Name', 'Score'];
|
|
50
58
|
const rows = [
|
|
51
|
-
[1,
|
|
52
|
-
[2,
|
|
59
|
+
[1, 'Alice', 99.5],
|
|
60
|
+
[2, 'Bob', 88.0],
|
|
53
61
|
];
|
|
54
|
-
|
|
55
|
-
// Generates the file and triggers the browser download automatically
|
|
62
|
+
|
|
56
63
|
document.getElementById('downloadBtn').addEventListener('click', () => {
|
|
57
|
-
downloadXlsb('report.xlsb', rows, headers
|
|
64
|
+
downloadXlsb('report.xlsb', rows, headers);
|
|
58
65
|
});
|
|
59
66
|
</script>
|
|
60
67
|
```
|
|
@@ -66,7 +73,9 @@ You can then import this single file via a script tag in any web application:
|
|
|
66
73
|
- Frozen and styled headers (styles: `bold`, `fill`, `bold+fill`)
|
|
67
74
|
- Auto-filters enabled by default
|
|
68
75
|
|
|
69
|
-
|
|
76
|
+
See [CHANGELOG.md](./CHANGELOG.md) for v2 breaking changes (`await reader.read()`).
|
|
77
|
+
|
|
78
|
+
## Quick Start
|
|
70
79
|
|
|
71
80
|
### Writing Excel Files
|
|
72
81
|
|
|
@@ -148,7 +157,7 @@ await reader.open('data.xlsb');
|
|
|
148
157
|
|
|
149
158
|
console.log('Sheet names:', reader.getSheetNames());
|
|
150
159
|
|
|
151
|
-
while (reader.read()) {
|
|
160
|
+
while (await reader.read()) {
|
|
152
161
|
const row = [];
|
|
153
162
|
for (let i = 0; i < reader.fieldCount; i++) {
|
|
154
163
|
row.push(reader.getValue(i));
|