@simplysm/excel 13.0.75 → 13.0.77
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/README.md +539 -17
- package/dist/excel-cell.d.ts +4 -4
- package/dist/excel-cell.d.ts.map +1 -1
- package/dist/excel-cell.js +9 -10
- package/dist/excel-cell.js.map +1 -1
- package/dist/excel-workbook.d.ts +3 -3
- package/dist/excel-workbook.d.ts.map +1 -1
- package/dist/excel-workbook.js +3 -3
- package/dist/excel-workbook.js.map +1 -1
- package/dist/excel-worksheet.d.ts +1 -1
- package/dist/excel-worksheet.d.ts.map +1 -1
- package/dist/excel-worksheet.js +13 -17
- package/dist/excel-worksheet.js.map +1 -1
- package/dist/excel-wrapper.d.ts +1 -1
- package/dist/excel-wrapper.js +7 -7
- package/dist/excel-wrapper.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/excel-utils.d.ts +5 -5
- package/dist/utils/excel-utils.d.ts.map +1 -1
- package/dist/utils/excel-utils.js +15 -15
- package/dist/utils/excel-utils.js.map +1 -1
- package/dist/utils/zip-cache.js +3 -3
- package/dist/utils/zip-cache.js.map +1 -1
- package/dist/xml/excel-xml-relationship.js +2 -2
- package/dist/xml/excel-xml-relationship.js.map +1 -1
- package/dist/xml/excel-xml-style.js +16 -16
- package/dist/xml/excel-xml-style.js.map +1 -1
- package/dist/xml/excel-xml-workbook.js +6 -6
- package/dist/xml/excel-xml-workbook.js.map +1 -1
- package/dist/xml/excel-xml-worksheet.d.ts +5 -2
- package/dist/xml/excel-xml-worksheet.d.ts.map +1 -1
- package/dist/xml/excel-xml-worksheet.js +38 -20
- package/dist/xml/excel-xml-worksheet.js.map +1 -1
- package/package.json +2 -2
- package/src/excel-cell.ts +10 -11
- package/src/excel-workbook.ts +3 -3
- package/src/excel-worksheet.ts +17 -18
- package/src/excel-wrapper.ts +7 -7
- package/src/types.ts +1 -1
- package/src/utils/excel-utils.ts +15 -15
- package/src/utils/zip-cache.ts +3 -3
- package/src/xml/excel-xml-relationship.ts +2 -2
- package/src/xml/excel-xml-style.ts +16 -16
- package/src/xml/excel-xml-workbook.ts +6 -6
- package/src/xml/excel-xml-worksheet.ts +47 -22
- package/tests/excel-cell.spec.ts +85 -140
- package/tests/excel-col.spec.ts +17 -48
- package/tests/excel-row.spec.ts +13 -23
- package/tests/excel-workbook.spec.ts +26 -40
- package/tests/excel-worksheet.spec.ts +217 -137
- package/tests/excel-wrapper.spec.ts +24 -47
- package/tests/image-insert.spec.ts +5 -5
- package/tests/utils/excel-utils.spec.ts +14 -58
|
@@ -6,7 +6,7 @@ describe("ExcelWorkbook", () => {
|
|
|
6
6
|
describe("Creating empty workbook", () => {
|
|
7
7
|
it("Can create a worksheet", async () => {
|
|
8
8
|
const wb = new ExcelWorkbook();
|
|
9
|
-
const ws = await wb.
|
|
9
|
+
const ws = await wb.addWorksheet("TestSheet");
|
|
10
10
|
|
|
11
11
|
expect(ws).toBeDefined();
|
|
12
12
|
const name = await ws.getName();
|
|
@@ -15,9 +15,9 @@ describe("ExcelWorkbook", () => {
|
|
|
15
15
|
|
|
16
16
|
it("Can create multiple worksheets", async () => {
|
|
17
17
|
const wb = new ExcelWorkbook();
|
|
18
|
-
await wb.
|
|
19
|
-
await wb.
|
|
20
|
-
await wb.
|
|
18
|
+
await wb.addWorksheet("Sheet1");
|
|
19
|
+
await wb.addWorksheet("Sheet2");
|
|
20
|
+
await wb.addWorksheet("Sheet3");
|
|
21
21
|
|
|
22
22
|
const names = await wb.getWorksheetNames();
|
|
23
23
|
expect(names).toEqual(["Sheet1", "Sheet2", "Sheet3"]);
|
|
@@ -27,8 +27,8 @@ describe("ExcelWorkbook", () => {
|
|
|
27
27
|
describe("Accessing worksheets", () => {
|
|
28
28
|
it("Can get worksheet by index", async () => {
|
|
29
29
|
const wb = new ExcelWorkbook();
|
|
30
|
-
await wb.
|
|
31
|
-
await wb.
|
|
30
|
+
await wb.addWorksheet("First");
|
|
31
|
+
await wb.addWorksheet("Second");
|
|
32
32
|
|
|
33
33
|
const ws = await wb.getWorksheet(1);
|
|
34
34
|
const name = await ws.getName();
|
|
@@ -37,7 +37,7 @@ describe("ExcelWorkbook", () => {
|
|
|
37
37
|
|
|
38
38
|
it("Can get worksheet by name", async () => {
|
|
39
39
|
const wb = new ExcelWorkbook();
|
|
40
|
-
await wb.
|
|
40
|
+
await wb.addWorksheet("MySheet");
|
|
41
41
|
|
|
42
42
|
const ws = await wb.getWorksheet("MySheet");
|
|
43
43
|
const name = await ws.getName();
|
|
@@ -46,7 +46,7 @@ describe("ExcelWorkbook", () => {
|
|
|
46
46
|
|
|
47
47
|
it("Error when accessing non-existent sheet", async () => {
|
|
48
48
|
const wb = new ExcelWorkbook();
|
|
49
|
-
await wb.
|
|
49
|
+
await wb.addWorksheet("Sheet1");
|
|
50
50
|
|
|
51
51
|
await expect(wb.getWorksheet("NotExist")).rejects.toThrow();
|
|
52
52
|
await expect(wb.getWorksheet(10)).rejects.toThrow();
|
|
@@ -56,20 +56,20 @@ describe("ExcelWorkbook", () => {
|
|
|
56
56
|
describe("Bytes/Blob export", () => {
|
|
57
57
|
it("Can export as Bytes", async () => {
|
|
58
58
|
const wb = new ExcelWorkbook();
|
|
59
|
-
const ws = await wb.
|
|
60
|
-
await ws.cell(0, 0).
|
|
59
|
+
const ws = await wb.addWorksheet("Test");
|
|
60
|
+
await ws.cell(0, 0).setValue("Hello");
|
|
61
61
|
|
|
62
|
-
const bytes: Bytes = await wb.
|
|
62
|
+
const bytes: Bytes = await wb.toBytes();
|
|
63
63
|
expect(bytes).toBeInstanceOf(Uint8Array);
|
|
64
64
|
expect(bytes.length).toBeGreaterThan(0);
|
|
65
65
|
});
|
|
66
66
|
|
|
67
67
|
it("Can export as Blob", async () => {
|
|
68
68
|
const wb = new ExcelWorkbook();
|
|
69
|
-
const ws = await wb.
|
|
70
|
-
await ws.cell(0, 0).
|
|
69
|
+
const ws = await wb.addWorksheet("Test");
|
|
70
|
+
await ws.cell(0, 0).setValue("Hello");
|
|
71
71
|
|
|
72
|
-
const blob = await wb.
|
|
72
|
+
const blob = await wb.toBlob();
|
|
73
73
|
expect(blob).toBeInstanceOf(Blob);
|
|
74
74
|
expect(blob.type).toBe("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
|
75
75
|
expect(blob.size).toBeGreaterThan(0);
|
|
@@ -80,9 +80,9 @@ describe("ExcelWorkbook", () => {
|
|
|
80
80
|
it("Can create workbook from Blob", async () => {
|
|
81
81
|
// First create workbook with Bytes
|
|
82
82
|
const wb1 = new ExcelWorkbook();
|
|
83
|
-
const ws1 = await wb1.
|
|
84
|
-
await ws1.cell(0, 0).
|
|
85
|
-
const bytes = await wb1.
|
|
83
|
+
const ws1 = await wb1.addWorksheet("Test");
|
|
84
|
+
await ws1.cell(0, 0).setValue("BlobTest");
|
|
85
|
+
const bytes = await wb1.toBytes();
|
|
86
86
|
await wb1.close();
|
|
87
87
|
|
|
88
88
|
// Convert to Blob
|
|
@@ -93,7 +93,7 @@ describe("ExcelWorkbook", () => {
|
|
|
93
93
|
// Read workbook from Blob
|
|
94
94
|
const wb2 = new ExcelWorkbook(blob);
|
|
95
95
|
const ws2 = await wb2.getWorksheet(0);
|
|
96
|
-
const val = await ws2.cell(0, 0).
|
|
96
|
+
const val = await ws2.cell(0, 0).getValue();
|
|
97
97
|
|
|
98
98
|
expect(val).toBe("BlobTest");
|
|
99
99
|
await wb2.close();
|
|
@@ -102,12 +102,12 @@ describe("ExcelWorkbook", () => {
|
|
|
102
102
|
it("Can save created workbook as Bytes and read again", async () => {
|
|
103
103
|
// Create
|
|
104
104
|
const wb1 = new ExcelWorkbook();
|
|
105
|
-
const ws1 = await wb1.
|
|
106
|
-
await ws1.cell(0, 0).
|
|
107
|
-
await ws1.cell(0, 1).
|
|
105
|
+
const ws1 = await wb1.addWorksheet("RoundTrip");
|
|
106
|
+
await ws1.cell(0, 0).setValue("TestValue");
|
|
107
|
+
await ws1.cell(0, 1).setValue(12345);
|
|
108
108
|
|
|
109
109
|
// Save
|
|
110
|
-
const bytes = await wb1.
|
|
110
|
+
const bytes = await wb1.toBytes();
|
|
111
111
|
await wb1.close();
|
|
112
112
|
|
|
113
113
|
// Read again
|
|
@@ -116,8 +116,8 @@ describe("ExcelWorkbook", () => {
|
|
|
116
116
|
expect(names).toContain("RoundTrip");
|
|
117
117
|
|
|
118
118
|
const ws2 = await wb2.getWorksheet("RoundTrip");
|
|
119
|
-
const val1 = await ws2.cell(0, 0).
|
|
120
|
-
const val2 = await ws2.cell(0, 1).
|
|
119
|
+
const val1 = await ws2.cell(0, 0).getValue();
|
|
120
|
+
const val2 = await ws2.cell(0, 1).getValue();
|
|
121
121
|
|
|
122
122
|
expect(val1).toBe("TestValue");
|
|
123
123
|
expect(val2).toBe(12345);
|
|
@@ -129,33 +129,19 @@ describe("ExcelWorkbook", () => {
|
|
|
129
129
|
describe("Error after resource cleanup", () => {
|
|
130
130
|
it("Error when calling getWorksheetNames() after close()", async () => {
|
|
131
131
|
const wb = new ExcelWorkbook();
|
|
132
|
-
await wb.
|
|
132
|
+
await wb.addWorksheet("Test");
|
|
133
133
|
await wb.close();
|
|
134
134
|
|
|
135
135
|
await expect(wb.getWorksheetNames()).rejects.toThrow();
|
|
136
136
|
});
|
|
137
137
|
|
|
138
|
-
it("Error when calling createWorksheet() after close()", async () => {
|
|
139
|
-
const wb = new ExcelWorkbook();
|
|
140
|
-
await wb.close();
|
|
141
|
-
|
|
142
|
-
await expect(wb.createWorksheet("New")).rejects.toThrow();
|
|
143
|
-
});
|
|
144
|
-
|
|
145
138
|
it("Error when calling getWorksheet() after close()", async () => {
|
|
146
139
|
const wb = new ExcelWorkbook();
|
|
147
|
-
await wb.
|
|
140
|
+
await wb.addWorksheet("Test");
|
|
148
141
|
await wb.close();
|
|
149
142
|
|
|
150
143
|
await expect(wb.getWorksheet(0)).rejects.toThrow();
|
|
151
144
|
});
|
|
152
|
-
|
|
153
|
-
it("Error when calling getBytes() after close()", async () => {
|
|
154
|
-
const wb = new ExcelWorkbook();
|
|
155
|
-
await wb.close();
|
|
156
|
-
|
|
157
|
-
await expect(wb.getBytes()).rejects.toThrow();
|
|
158
|
-
});
|
|
159
145
|
});
|
|
160
146
|
|
|
161
147
|
describe("Reading real xlsx file", () => {
|