@stamhoofd/excel-writer 2.17.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/LICENSE +661 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/src/XlsxColumnFilterer.d.ts +11 -0
- package/dist/src/XlsxColumnFilterer.d.ts.map +1 -0
- package/dist/src/XlsxColumnFilterer.js +81 -0
- package/dist/src/XlsxColumnFilterer.js.map +1 -0
- package/dist/src/XlsxTransformer.d.ts +14 -0
- package/dist/src/XlsxTransformer.d.ts.map +1 -0
- package/dist/src/XlsxTransformer.js +59 -0
- package/dist/src/XlsxTransformer.js.map +1 -0
- package/dist/src/exportToExcel.d.ts +8 -0
- package/dist/src/exportToExcel.d.ts.map +1 -0
- package/dist/src/exportToExcel.js +23 -0
- package/dist/src/exportToExcel.js.map +1 -0
- package/dist/src/interfaces.d.ts +160 -0
- package/dist/src/interfaces.d.ts.map +1 -0
- package/dist/src/interfaces.js +101 -0
- package/dist/src/interfaces.js.map +1 -0
- package/dist/src/stream-writer/XlsxAppPropsWriter.d.ts +5 -0
- package/dist/src/stream-writer/XlsxAppPropsWriter.d.ts.map +1 -0
- package/dist/src/stream-writer/XlsxAppPropsWriter.js +13 -0
- package/dist/src/stream-writer/XlsxAppPropsWriter.js.map +1 -0
- package/dist/src/stream-writer/XlsxContentTypesWriter.d.ts +13 -0
- package/dist/src/stream-writer/XlsxContentTypesWriter.d.ts.map +1 -0
- package/dist/src/stream-writer/XlsxContentTypesWriter.js +24 -0
- package/dist/src/stream-writer/XlsxContentTypesWriter.js.map +1 -0
- package/dist/src/stream-writer/XlsxCorePropsWriter.d.ts +7 -0
- package/dist/src/stream-writer/XlsxCorePropsWriter.d.ts.map +1 -0
- package/dist/src/stream-writer/XlsxCorePropsWriter.js +26 -0
- package/dist/src/stream-writer/XlsxCorePropsWriter.js.map +1 -0
- package/dist/src/stream-writer/XlsxFileWriter.d.ts +11 -0
- package/dist/src/stream-writer/XlsxFileWriter.d.ts.map +1 -0
- package/dist/src/stream-writer/XlsxFileWriter.js +44 -0
- package/dist/src/stream-writer/XlsxFileWriter.js.map +1 -0
- package/dist/src/stream-writer/XlsxRelationsWriter.d.ts +17 -0
- package/dist/src/stream-writer/XlsxRelationsWriter.d.ts.map +1 -0
- package/dist/src/stream-writer/XlsxRelationsWriter.js +28 -0
- package/dist/src/stream-writer/XlsxRelationsWriter.js.map +1 -0
- package/dist/src/stream-writer/XlsxSharedStringsWriter.d.ts +5 -0
- package/dist/src/stream-writer/XlsxSharedStringsWriter.d.ts.map +1 -0
- package/dist/src/stream-writer/XlsxSharedStringsWriter.js +12 -0
- package/dist/src/stream-writer/XlsxSharedStringsWriter.js.map +1 -0
- package/dist/src/stream-writer/XlsxSheetWriter.d.ts +30 -0
- package/dist/src/stream-writer/XlsxSheetWriter.d.ts.map +1 -0
- package/dist/src/stream-writer/XlsxSheetWriter.js +140 -0
- package/dist/src/stream-writer/XlsxSheetWriter.js.map +1 -0
- package/dist/src/stream-writer/XlsxStylesWriter.d.ts +24 -0
- package/dist/src/stream-writer/XlsxStylesWriter.d.ts.map +1 -0
- package/dist/src/stream-writer/XlsxStylesWriter.js +159 -0
- package/dist/src/stream-writer/XlsxStylesWriter.js.map +1 -0
- package/dist/src/stream-writer/XlsxThemeWriter.d.ts +5 -0
- package/dist/src/stream-writer/XlsxThemeWriter.d.ts.map +1 -0
- package/dist/src/stream-writer/XlsxThemeWriter.js +327 -0
- package/dist/src/stream-writer/XlsxThemeWriter.js.map +1 -0
- package/dist/src/stream-writer/XlsxWorkbookWriter.d.ts +17 -0
- package/dist/src/stream-writer/XlsxWorkbookWriter.d.ts.map +1 -0
- package/dist/src/stream-writer/XlsxWorkbookWriter.js +31 -0
- package/dist/src/stream-writer/XlsxWorkbookWriter.js.map +1 -0
- package/dist/src/stream-writer/XlsxWriter.d.ts +35 -0
- package/dist/src/stream-writer/XlsxWriter.d.ts.map +1 -0
- package/dist/src/stream-writer/XlsxWriter.js +254 -0
- package/dist/src/stream-writer/XlsxWriter.js.map +1 -0
- package/dist/src/stream-writer/adapters/ArchiverWriterAdapter.d.ts +24 -0
- package/dist/src/stream-writer/adapters/ArchiverWriterAdapter.d.ts.map +1 -0
- package/dist/src/stream-writer/adapters/ArchiverWriterAdapter.js +90 -0
- package/dist/src/stream-writer/adapters/ArchiverWriterAdapter.js.map +1 -0
- package/dist/src/stream-writer/adapters/ZipJsWriterAdapter.d.ts +22 -0
- package/dist/src/stream-writer/adapters/ZipJsWriterAdapter.d.ts.map +1 -0
- package/dist/src/stream-writer/adapters/ZipJsWriterAdapter.js +50 -0
- package/dist/src/stream-writer/adapters/ZipJsWriterAdapter.js.map +1 -0
- package/dist/src/stream-writer/escapeXml.d.ts +2 -0
- package/dist/src/stream-writer/escapeXml.d.ts.map +1 -0
- package/dist/src/stream-writer/escapeXml.js +16 -0
- package/dist/src/stream-writer/escapeXml.js.map +1 -0
- package/dist/src/stream-writer/index.d.ts +4 -0
- package/dist/src/stream-writer/index.d.ts.map +1 -0
- package/dist/src/stream-writer/index.js +7 -0
- package/dist/src/stream-writer/index.js.map +1 -0
- package/dist/src/stream-writer/interfaces.d.ts +14 -0
- package/dist/src/stream-writer/interfaces.d.ts.map +1 -0
- package/dist/src/stream-writer/interfaces.js +3 -0
- package/dist/src/stream-writer/interfaces.js.map +1 -0
- package/esm/dist/index.d.ts +4 -0
- package/esm/dist/index.d.ts.map +1 -0
- package/esm/dist/index.js +4 -0
- package/esm/dist/index.js.map +1 -0
- package/esm/dist/src/XlsxColumnFilterer.d.ts +11 -0
- package/esm/dist/src/XlsxColumnFilterer.d.ts.map +1 -0
- package/esm/dist/src/XlsxColumnFilterer.js +77 -0
- package/esm/dist/src/XlsxColumnFilterer.js.map +1 -0
- package/esm/dist/src/XlsxTransformer.d.ts +14 -0
- package/esm/dist/src/XlsxTransformer.d.ts.map +1 -0
- package/esm/dist/src/XlsxTransformer.js +55 -0
- package/esm/dist/src/XlsxTransformer.js.map +1 -0
- package/esm/dist/src/exportToExcel.d.ts +8 -0
- package/esm/dist/src/exportToExcel.d.ts.map +1 -0
- package/esm/dist/src/exportToExcel.js +20 -0
- package/esm/dist/src/exportToExcel.js.map +1 -0
- package/esm/dist/src/interfaces.d.ts +160 -0
- package/esm/dist/src/interfaces.d.ts.map +1 -0
- package/esm/dist/src/interfaces.js +98 -0
- package/esm/dist/src/interfaces.js.map +1 -0
- package/esm/dist/src/stream-writer/XlsxAppPropsWriter.d.ts +5 -0
- package/esm/dist/src/stream-writer/XlsxAppPropsWriter.d.ts.map +1 -0
- package/esm/dist/src/stream-writer/XlsxAppPropsWriter.js +9 -0
- package/esm/dist/src/stream-writer/XlsxAppPropsWriter.js.map +1 -0
- package/esm/dist/src/stream-writer/XlsxContentTypesWriter.d.ts +13 -0
- package/esm/dist/src/stream-writer/XlsxContentTypesWriter.d.ts.map +1 -0
- package/esm/dist/src/stream-writer/XlsxContentTypesWriter.js +20 -0
- package/esm/dist/src/stream-writer/XlsxContentTypesWriter.js.map +1 -0
- package/esm/dist/src/stream-writer/XlsxCorePropsWriter.d.ts +7 -0
- package/esm/dist/src/stream-writer/XlsxCorePropsWriter.d.ts.map +1 -0
- package/esm/dist/src/stream-writer/XlsxCorePropsWriter.js +22 -0
- package/esm/dist/src/stream-writer/XlsxCorePropsWriter.js.map +1 -0
- package/esm/dist/src/stream-writer/XlsxFileWriter.d.ts +11 -0
- package/esm/dist/src/stream-writer/XlsxFileWriter.d.ts.map +1 -0
- package/esm/dist/src/stream-writer/XlsxFileWriter.js +40 -0
- package/esm/dist/src/stream-writer/XlsxFileWriter.js.map +1 -0
- package/esm/dist/src/stream-writer/XlsxRelationsWriter.d.ts +17 -0
- package/esm/dist/src/stream-writer/XlsxRelationsWriter.d.ts.map +1 -0
- package/esm/dist/src/stream-writer/XlsxRelationsWriter.js +24 -0
- package/esm/dist/src/stream-writer/XlsxRelationsWriter.js.map +1 -0
- package/esm/dist/src/stream-writer/XlsxSharedStringsWriter.d.ts +5 -0
- package/esm/dist/src/stream-writer/XlsxSharedStringsWriter.d.ts.map +1 -0
- package/esm/dist/src/stream-writer/XlsxSharedStringsWriter.js +8 -0
- package/esm/dist/src/stream-writer/XlsxSharedStringsWriter.js.map +1 -0
- package/esm/dist/src/stream-writer/XlsxSheetWriter.d.ts +30 -0
- package/esm/dist/src/stream-writer/XlsxSheetWriter.d.ts.map +1 -0
- package/esm/dist/src/stream-writer/XlsxSheetWriter.js +136 -0
- package/esm/dist/src/stream-writer/XlsxSheetWriter.js.map +1 -0
- package/esm/dist/src/stream-writer/XlsxStylesWriter.d.ts +24 -0
- package/esm/dist/src/stream-writer/XlsxStylesWriter.d.ts.map +1 -0
- package/esm/dist/src/stream-writer/XlsxStylesWriter.js +155 -0
- package/esm/dist/src/stream-writer/XlsxStylesWriter.js.map +1 -0
- package/esm/dist/src/stream-writer/XlsxThemeWriter.d.ts +5 -0
- package/esm/dist/src/stream-writer/XlsxThemeWriter.d.ts.map +1 -0
- package/esm/dist/src/stream-writer/XlsxThemeWriter.js +323 -0
- package/esm/dist/src/stream-writer/XlsxThemeWriter.js.map +1 -0
- package/esm/dist/src/stream-writer/XlsxWorkbookWriter.d.ts +17 -0
- package/esm/dist/src/stream-writer/XlsxWorkbookWriter.d.ts.map +1 -0
- package/esm/dist/src/stream-writer/XlsxWorkbookWriter.js +27 -0
- package/esm/dist/src/stream-writer/XlsxWorkbookWriter.js.map +1 -0
- package/esm/dist/src/stream-writer/XlsxWriter.d.ts +35 -0
- package/esm/dist/src/stream-writer/XlsxWriter.d.ts.map +1 -0
- package/esm/dist/src/stream-writer/XlsxWriter.js +250 -0
- package/esm/dist/src/stream-writer/XlsxWriter.js.map +1 -0
- package/esm/dist/src/stream-writer/adapters/ArchiverWriterAdapter.d.ts +24 -0
- package/esm/dist/src/stream-writer/adapters/ArchiverWriterAdapter.d.ts.map +1 -0
- package/esm/dist/src/stream-writer/adapters/ArchiverWriterAdapter.js +85 -0
- package/esm/dist/src/stream-writer/adapters/ArchiverWriterAdapter.js.map +1 -0
- package/esm/dist/src/stream-writer/adapters/ZipJsWriterAdapter.d.ts +22 -0
- package/esm/dist/src/stream-writer/adapters/ZipJsWriterAdapter.d.ts.map +1 -0
- package/esm/dist/src/stream-writer/adapters/ZipJsWriterAdapter.js +45 -0
- package/esm/dist/src/stream-writer/adapters/ZipJsWriterAdapter.js.map +1 -0
- package/esm/dist/src/stream-writer/escapeXml.d.ts +2 -0
- package/esm/dist/src/stream-writer/escapeXml.d.ts.map +1 -0
- package/esm/dist/src/stream-writer/escapeXml.js +13 -0
- package/esm/dist/src/stream-writer/escapeXml.js.map +1 -0
- package/esm/dist/src/stream-writer/index.d.ts +4 -0
- package/esm/dist/src/stream-writer/index.d.ts.map +1 -0
- package/esm/dist/src/stream-writer/index.js +4 -0
- package/esm/dist/src/stream-writer/index.js.map +1 -0
- package/esm/dist/src/stream-writer/interfaces.d.ts +14 -0
- package/esm/dist/src/stream-writer/interfaces.d.ts.map +1 -0
- package/esm/dist/src/stream-writer/interfaces.js +2 -0
- package/esm/dist/src/stream-writer/interfaces.js.map +1 -0
- package/package.json +28 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { SimpleError } from "@simonbackx/simple-errors";
|
|
2
|
+
/**
|
|
3
|
+
* Allows to specify which columns to include in the excel file.
|
|
4
|
+
* Takes a filter object that can be built in the frontend
|
|
5
|
+
*/
|
|
6
|
+
export class XlsxColumnFilterer {
|
|
7
|
+
allSheets;
|
|
8
|
+
constructor(allSheets) {
|
|
9
|
+
this.allSheets = allSheets;
|
|
10
|
+
}
|
|
11
|
+
filterColumns(filter) {
|
|
12
|
+
// Validate sheetFilter
|
|
13
|
+
for (const { id } of filter.sheets) {
|
|
14
|
+
if (!this.allSheets.find(sheet => sheet.id === id)) {
|
|
15
|
+
throw new SimpleError({
|
|
16
|
+
code: "invalid_sheet",
|
|
17
|
+
message: "Invalid sheet " + id,
|
|
18
|
+
human: 'Ongeldig werkblad ' + id + ', deze wordt niet (meer) ondersteund',
|
|
19
|
+
statusCode: 400
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const sheets = this.allSheets.flatMap(sheet => {
|
|
24
|
+
const sheetFilter = filter.sheets.find(s => s.id === sheet.id);
|
|
25
|
+
if (!sheetFilter) {
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
// Validate sheetFilter
|
|
29
|
+
const concreteColumns = [];
|
|
30
|
+
for (const id of sheetFilter.columns) {
|
|
31
|
+
let found = false;
|
|
32
|
+
for (const column of sheet.columns) {
|
|
33
|
+
if ("id" in column) {
|
|
34
|
+
if (column.id === id) {
|
|
35
|
+
concreteColumns.push(column);
|
|
36
|
+
found = true;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
const matched = column.match(id);
|
|
42
|
+
if (matched !== undefined) {
|
|
43
|
+
concreteColumns.push(...matched);
|
|
44
|
+
found = true;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (!found) {
|
|
50
|
+
throw new SimpleError({
|
|
51
|
+
code: "invalid_column",
|
|
52
|
+
message: "Invalid column " + id,
|
|
53
|
+
human: 'Ongeldige kolom ' + id + ', deze wordt niet (meer) ondersteund',
|
|
54
|
+
statusCode: 400
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (concreteColumns.length === 0) {
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
return [{
|
|
62
|
+
...sheet,
|
|
63
|
+
columns: concreteColumns
|
|
64
|
+
}];
|
|
65
|
+
});
|
|
66
|
+
if (sheets.length === 0) {
|
|
67
|
+
throw new SimpleError({
|
|
68
|
+
code: "no_columns",
|
|
69
|
+
message: "No columns selected",
|
|
70
|
+
human: 'Geen enkele kolom is geselecteerd',
|
|
71
|
+
statusCode: 400
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
return sheets;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=XlsxColumnFilterer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XlsxColumnFilterer.js","sourceRoot":"","sources":["../../../src/XlsxColumnFilterer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAC3B,SAAS,CAAqC;IAE9C,YAAY,SAA6C;QACrD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,aAAa,CAAC,MAA0B;QACpC,uBAAuB;QACvB,KAAK,MAAM,EAAC,EAAE,EAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBACjD,MAAM,IAAI,WAAW,CAAC;oBAClB,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,gBAAgB,GAAG,EAAE;oBAC9B,KAAK,EAAE,oBAAoB,GAAG,EAAE,GAAC,sCAAsC;oBACvE,UAAU,EAAE,GAAG;iBAClB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC1C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;YAE/D,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACd,CAAC;YAED,uBAAuB;YACvB,MAAM,eAAe,GAAuC,EAAE,CAAC;YAC/D,KAAK,MAAM,EAAE,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACnC,IAAI,KAAK,GAAG,KAAK,CAAC;gBAElB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBACjC,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;wBACjB,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;4BACnB,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BAC7B,KAAK,GAAG,IAAI,CAAC;4BACb,MAAM;wBACV,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBACjC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;4BACxB,eAAe,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;4BACjC,KAAK,GAAG,IAAI,CAAC;4BACb,MAAM;wBACV,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,KAAK,EAAE,CAAC;oBACT,MAAM,IAAI,WAAW,CAAC;wBAClB,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,iBAAiB,GAAG,EAAE;wBAC/B,KAAK,EAAE,kBAAkB,GAAG,EAAE,GAAC,sCAAsC;wBACrE,UAAU,EAAE,GAAG;qBAClB,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YACD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,EAAE,CAAC;YACd,CAAC;YAED,OAAO,CAAC;oBACJ,GAAG,KAAK;oBACR,OAAO,EAAE,eAAe;iBAC3B,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,WAAW,CAAC;gBAClB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,KAAK,EAAE,mCAAmC;gBAC1C,UAAU,EAAE,GAAG;aAClB,CAAC,CAAC;QACP,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { XlsxTransformerConcreteSheet, XlsxTransformerSheet, XlsxWriterAdapter } from "./interfaces";
|
|
2
|
+
/**
|
|
3
|
+
* Transforms data into an excel file using
|
|
4
|
+
* a writer that can write to an excel file
|
|
5
|
+
*/
|
|
6
|
+
export declare class XlsxTransformer<T> {
|
|
7
|
+
sheets: XlsxTransformerConcreteSheet<T, unknown>[];
|
|
8
|
+
writer: XlsxWriterAdapter;
|
|
9
|
+
sheetMap: Map<XlsxTransformerSheet<T, unknown>, symbol>;
|
|
10
|
+
constructor(sheets: XlsxTransformerConcreteSheet<T, unknown>[], writer: XlsxWriterAdapter);
|
|
11
|
+
init(): Promise<void>;
|
|
12
|
+
process(data: T[]): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=XlsxTransformer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XlsxTransformer.d.ts","sourceRoot":"","sources":["../../../src/XlsxTransformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAErG;;;GAGG;AACH,qBAAa,eAAe,CAAC,CAAC;IAC1B,MAAM,EAAE,4BAA4B,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;IACnD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAa;gBAExD,MAAM,EAAE,4BAA4B,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB;IAKnF,IAAI;IA+BJ,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE;CAc1B"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transforms data into an excel file using
|
|
3
|
+
* a writer that can write to an excel file
|
|
4
|
+
*/
|
|
5
|
+
export class XlsxTransformer {
|
|
6
|
+
sheets;
|
|
7
|
+
writer;
|
|
8
|
+
sheetMap = new Map();
|
|
9
|
+
constructor(sheets, writer) {
|
|
10
|
+
this.sheets = sheets;
|
|
11
|
+
this.writer = writer;
|
|
12
|
+
}
|
|
13
|
+
async init() {
|
|
14
|
+
for (const sheet of this.sheets) {
|
|
15
|
+
let sheetSymbol = this.sheetMap.get(sheet);
|
|
16
|
+
if (!sheetSymbol) {
|
|
17
|
+
sheetSymbol = await this.writer.addSheet(sheet.name);
|
|
18
|
+
this.sheetMap.set(sheet, sheetSymbol);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
await this.writer.ready();
|
|
22
|
+
// Write column headers
|
|
23
|
+
for (const sheet of this.sheets) {
|
|
24
|
+
const sheetSymbol = this.sheetMap.get(sheet);
|
|
25
|
+
if (!sheetSymbol) {
|
|
26
|
+
throw new Error('Sheet not found');
|
|
27
|
+
}
|
|
28
|
+
await this.writer.addRow(sheetSymbol, sheet.columns.map(col => {
|
|
29
|
+
return {
|
|
30
|
+
value: col.name,
|
|
31
|
+
width: col.width,
|
|
32
|
+
style: {
|
|
33
|
+
font: {
|
|
34
|
+
bold: true
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async process(data) {
|
|
42
|
+
for (const sheet of this.sheets) {
|
|
43
|
+
const sheetSymbol = this.sheetMap.get(sheet);
|
|
44
|
+
if (!sheetSymbol) {
|
|
45
|
+
throw new Error('Sheet not found');
|
|
46
|
+
}
|
|
47
|
+
for (const item of data) {
|
|
48
|
+
for (const transformedItem of sheet.transform ? sheet.transform(item) : [item]) {
|
|
49
|
+
await this.writer.addRow(sheetSymbol, sheet.columns.map(col => col.getValue(transformedItem)));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=XlsxTransformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XlsxTransformer.js","sourceRoot":"","sources":["../../../src/XlsxTransformer.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,eAAe;IACxB,MAAM,CAA6C;IACnD,MAAM,CAAoB;IAC1B,QAAQ,GAAkD,IAAI,GAAG,EAAE,CAAC;IAEpE,YAAY,MAAkD,EAAE,MAAyB;QACrF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAI;QACN,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAE1B,uBAAuB;QACvB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACvC,CAAC;YAED,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAC1D,OAAO;oBACH,KAAK,EAAE,GAAG,CAAC,IAAI;oBACf,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,KAAK,EAAE;wBACH,IAAI,EAAE;4BACF,IAAI,EAAE,IAAI;yBACb;qBACJ;iBACJ,CAAA;YACL,CAAC,CAAC,CAAC,CAAC;QACR,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAS;QACnB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACvC,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACtB,KAAK,MAAM,eAAe,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7E,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBACnG,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { XlsxTransformerSheet, XlsxWorkbookFilter, XlsxWriterAdapter } from "./interfaces";
|
|
2
|
+
export declare function exportToExcel<T>({ definitions, writer, dataGenerator, filter }: {
|
|
3
|
+
filter: XlsxWorkbookFilter;
|
|
4
|
+
definitions: XlsxTransformerSheet<T, unknown>[];
|
|
5
|
+
writer: XlsxWriterAdapter;
|
|
6
|
+
dataGenerator: AsyncIterable<T[]>;
|
|
7
|
+
}): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=exportToExcel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportToExcel.d.ts","sourceRoot":"","sources":["../../../src/exportToExcel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAI3F,wBAAsB,aAAa,CAAC,CAAC,EAAE,EAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAC,EAAE;IACjF,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;IAChD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAA;CACpC,iBAoBA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { XlsxColumnFilterer } from "./XlsxColumnFilterer";
|
|
2
|
+
import { XlsxTransformer } from "./XlsxTransformer";
|
|
3
|
+
export async function exportToExcel({ definitions, writer, dataGenerator, filter }) {
|
|
4
|
+
try {
|
|
5
|
+
const sheets = new XlsxColumnFilterer(definitions).filterColumns(filter);
|
|
6
|
+
// The transformer handles data and converts it into cell values and writes it to the writer
|
|
7
|
+
const transformer = new XlsxTransformer(sheets, writer);
|
|
8
|
+
await transformer.init();
|
|
9
|
+
// Start looping over the data
|
|
10
|
+
for await (const data of dataGenerator) {
|
|
11
|
+
await transformer.process(data);
|
|
12
|
+
}
|
|
13
|
+
await writer.close();
|
|
14
|
+
}
|
|
15
|
+
catch (e) {
|
|
16
|
+
await writer.abort();
|
|
17
|
+
throw e;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=exportToExcel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportToExcel.js","sourceRoot":"","sources":["../../../src/exportToExcel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,EAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAKjF;IACG,IAAI,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEzE,4FAA4F;QAC5F,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAExD,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAEzB,8BAA8B;QAC9B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACrC,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,CAAC,CAAC;IACZ,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
export type XlsxTransformerConcreteColumn<T> = {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
width: number;
|
|
5
|
+
getValue(object: T): CellValue;
|
|
6
|
+
};
|
|
7
|
+
export type XlsxTransformerColumn<T> = XlsxTransformerConcreteColumn<T> | {
|
|
8
|
+
match: (id: string) => (XlsxTransformerConcreteColumn<T>[] | undefined);
|
|
9
|
+
};
|
|
10
|
+
export interface XlsxTransformerSheet<A, B = A> {
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
transform?: (data: A) => B[];
|
|
14
|
+
columns: XlsxTransformerColumn<B>[];
|
|
15
|
+
}
|
|
16
|
+
export interface XlsxTransformerConcreteSheet<A, B = A> {
|
|
17
|
+
id: string;
|
|
18
|
+
name: string;
|
|
19
|
+
transform?: (data: A) => B[];
|
|
20
|
+
columns: XlsxTransformerConcreteColumn<B>[];
|
|
21
|
+
}
|
|
22
|
+
export interface CellValue {
|
|
23
|
+
value: string | number | Date | null;
|
|
24
|
+
width?: number;
|
|
25
|
+
style?: CellStyleRequest;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* This should be implemented in a specific environment (e.g. nodejs, browser)
|
|
29
|
+
* that can write Excel files, given input CellValues
|
|
30
|
+
*/
|
|
31
|
+
export interface XlsxWriterAdapter {
|
|
32
|
+
addSheet(name: string): Promise<symbol> | symbol;
|
|
33
|
+
addRow(sheet: symbol, values: CellValue[]): Promise<void> | void;
|
|
34
|
+
/**
|
|
35
|
+
* Called when all sheets have been added and all files are ready to be written
|
|
36
|
+
*/
|
|
37
|
+
ready(): Promise<void>;
|
|
38
|
+
close(): Promise<void>;
|
|
39
|
+
abort(): Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
export type XlsxWorkbookFilter = {
|
|
42
|
+
sheets: {
|
|
43
|
+
id: string;
|
|
44
|
+
columns: string[];
|
|
45
|
+
}[];
|
|
46
|
+
};
|
|
47
|
+
export declare enum XlsxBuiltInNumberFormat {
|
|
48
|
+
None = 0,
|
|
49
|
+
Number = 1,
|
|
50
|
+
Number2Decimal = 2,
|
|
51
|
+
NumberWithThousandSeparator = 3,
|
|
52
|
+
NumberWithThousandSeparator2Decimal = 4,
|
|
53
|
+
CurrencyWithoutRed = 5,
|
|
54
|
+
CurrencyWithRed = 6,
|
|
55
|
+
Currency2DecimalWithoutRed = 7,
|
|
56
|
+
Currency2DecimalWithRed = 8,
|
|
57
|
+
Percentage = 9,
|
|
58
|
+
Percentage2Decimal = 10,
|
|
59
|
+
Scientific = 11,
|
|
60
|
+
Fraction = 12,
|
|
61
|
+
Fraction2 = 13,
|
|
62
|
+
/**
|
|
63
|
+
* m/d/yyyy (depends on user local environment)
|
|
64
|
+
* In EU: 14/03/2022
|
|
65
|
+
*/
|
|
66
|
+
DateSlash = 14,
|
|
67
|
+
/**
|
|
68
|
+
* d-mmm-yy
|
|
69
|
+
* 14-Mar-22
|
|
70
|
+
*/
|
|
71
|
+
DateShort = 15,
|
|
72
|
+
/**
|
|
73
|
+
* d-mmm
|
|
74
|
+
* 14-Mar
|
|
75
|
+
*/
|
|
76
|
+
DateShortNoYear = 16,
|
|
77
|
+
/**
|
|
78
|
+
* mmm-yy
|
|
79
|
+
* Mar-22
|
|
80
|
+
*/
|
|
81
|
+
DateMonthYear = 17,
|
|
82
|
+
/**
|
|
83
|
+
* h:mm AM/PM
|
|
84
|
+
* 2:30 PM
|
|
85
|
+
*/
|
|
86
|
+
TimeAMPM = 18,
|
|
87
|
+
/**
|
|
88
|
+
* h:mm:ss AM/PM
|
|
89
|
+
* 2:30:15 PM
|
|
90
|
+
*/
|
|
91
|
+
TimeSecondsAMPM = 19,
|
|
92
|
+
/**
|
|
93
|
+
* h:mm
|
|
94
|
+
* 2:30
|
|
95
|
+
*/
|
|
96
|
+
Time = 20,
|
|
97
|
+
/**
|
|
98
|
+
* h:mm:ss
|
|
99
|
+
* 2:30:15
|
|
100
|
+
*/
|
|
101
|
+
TimeSeconds = 21,
|
|
102
|
+
/**
|
|
103
|
+
* m/d/yyyy h:mm (depends on user local environment)
|
|
104
|
+
* 14/03/2022 14:30
|
|
105
|
+
*/
|
|
106
|
+
DateTimeSlash = 22,
|
|
107
|
+
/**
|
|
108
|
+
* mm:ss
|
|
109
|
+
* 02:30
|
|
110
|
+
*/
|
|
111
|
+
TimeMinutesSeconds = 45,
|
|
112
|
+
/**
|
|
113
|
+
* [h]:mm:ss
|
|
114
|
+
* 26:30:15
|
|
115
|
+
*/
|
|
116
|
+
TimeHoursMinutesSeconds = 46,
|
|
117
|
+
/**
|
|
118
|
+
* mm:ss.0
|
|
119
|
+
* 02:30.0
|
|
120
|
+
*/
|
|
121
|
+
TimeMinutesSecondsDecimal = 47,
|
|
122
|
+
/**
|
|
123
|
+
* ##0.0E+0
|
|
124
|
+
* 1.2E+3
|
|
125
|
+
*/
|
|
126
|
+
Scientific2 = 48,
|
|
127
|
+
/**
|
|
128
|
+
* @
|
|
129
|
+
* Text
|
|
130
|
+
*/
|
|
131
|
+
Text = 49
|
|
132
|
+
}
|
|
133
|
+
export type NumberFormatOptions = {
|
|
134
|
+
id?: XlsxBuiltInNumberFormat | number;
|
|
135
|
+
formatCode?: string;
|
|
136
|
+
};
|
|
137
|
+
export declare enum CellType {
|
|
138
|
+
Boolean = "b",
|
|
139
|
+
Date = "d",
|
|
140
|
+
Error = "e",
|
|
141
|
+
InlineString = "inlineStr",
|
|
142
|
+
Number = "n",// This is the default value
|
|
143
|
+
SharedString = "s",
|
|
144
|
+
Formula = "str"
|
|
145
|
+
}
|
|
146
|
+
export type FontOptions = {
|
|
147
|
+
size?: number;
|
|
148
|
+
bold?: boolean;
|
|
149
|
+
};
|
|
150
|
+
export type CellAlignmentOptions = {
|
|
151
|
+
horizontal?: 'general' | 'center' | 'centerContinuous' | 'distributed' | 'justify' | 'fill' | 'left' | 'right';
|
|
152
|
+
vertical?: 'bottom' | 'center' | 'distributed' | 'justify' | 'top';
|
|
153
|
+
wrapText?: boolean;
|
|
154
|
+
};
|
|
155
|
+
export type CellStyleRequest = {
|
|
156
|
+
font?: FontOptions;
|
|
157
|
+
numberFormat?: NumberFormatOptions;
|
|
158
|
+
alignment?: CellAlignmentOptions;
|
|
159
|
+
};
|
|
160
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
export var XlsxBuiltInNumberFormat;
|
|
2
|
+
(function (XlsxBuiltInNumberFormat) {
|
|
3
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["None"] = 0] = "None";
|
|
4
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Number"] = 1] = "Number";
|
|
5
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Number2Decimal"] = 2] = "Number2Decimal";
|
|
6
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["NumberWithThousandSeparator"] = 3] = "NumberWithThousandSeparator";
|
|
7
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["NumberWithThousandSeparator2Decimal"] = 4] = "NumberWithThousandSeparator2Decimal";
|
|
8
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["CurrencyWithoutRed"] = 5] = "CurrencyWithoutRed";
|
|
9
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["CurrencyWithRed"] = 6] = "CurrencyWithRed";
|
|
10
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Currency2DecimalWithoutRed"] = 7] = "Currency2DecimalWithoutRed";
|
|
11
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Currency2DecimalWithRed"] = 8] = "Currency2DecimalWithRed";
|
|
12
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Percentage"] = 9] = "Percentage";
|
|
13
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Percentage2Decimal"] = 10] = "Percentage2Decimal";
|
|
14
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Scientific"] = 11] = "Scientific";
|
|
15
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Fraction"] = 12] = "Fraction";
|
|
16
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Fraction2"] = 13] = "Fraction2";
|
|
17
|
+
/**
|
|
18
|
+
* m/d/yyyy (depends on user local environment)
|
|
19
|
+
* In EU: 14/03/2022
|
|
20
|
+
*/
|
|
21
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["DateSlash"] = 14] = "DateSlash";
|
|
22
|
+
/**
|
|
23
|
+
* d-mmm-yy
|
|
24
|
+
* 14-Mar-22
|
|
25
|
+
*/
|
|
26
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["DateShort"] = 15] = "DateShort";
|
|
27
|
+
/**
|
|
28
|
+
* d-mmm
|
|
29
|
+
* 14-Mar
|
|
30
|
+
*/
|
|
31
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["DateShortNoYear"] = 16] = "DateShortNoYear";
|
|
32
|
+
/**
|
|
33
|
+
* mmm-yy
|
|
34
|
+
* Mar-22
|
|
35
|
+
*/
|
|
36
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["DateMonthYear"] = 17] = "DateMonthYear";
|
|
37
|
+
/**
|
|
38
|
+
* h:mm AM/PM
|
|
39
|
+
* 2:30 PM
|
|
40
|
+
*/
|
|
41
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["TimeAMPM"] = 18] = "TimeAMPM";
|
|
42
|
+
/**
|
|
43
|
+
* h:mm:ss AM/PM
|
|
44
|
+
* 2:30:15 PM
|
|
45
|
+
*/
|
|
46
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["TimeSecondsAMPM"] = 19] = "TimeSecondsAMPM";
|
|
47
|
+
/**
|
|
48
|
+
* h:mm
|
|
49
|
+
* 2:30
|
|
50
|
+
*/
|
|
51
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Time"] = 20] = "Time";
|
|
52
|
+
/**
|
|
53
|
+
* h:mm:ss
|
|
54
|
+
* 2:30:15
|
|
55
|
+
*/
|
|
56
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["TimeSeconds"] = 21] = "TimeSeconds";
|
|
57
|
+
/**
|
|
58
|
+
* m/d/yyyy h:mm (depends on user local environment)
|
|
59
|
+
* 14/03/2022 14:30
|
|
60
|
+
*/
|
|
61
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["DateTimeSlash"] = 22] = "DateTimeSlash";
|
|
62
|
+
/**
|
|
63
|
+
* mm:ss
|
|
64
|
+
* 02:30
|
|
65
|
+
*/
|
|
66
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["TimeMinutesSeconds"] = 45] = "TimeMinutesSeconds";
|
|
67
|
+
/**
|
|
68
|
+
* [h]:mm:ss
|
|
69
|
+
* 26:30:15
|
|
70
|
+
*/
|
|
71
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["TimeHoursMinutesSeconds"] = 46] = "TimeHoursMinutesSeconds";
|
|
72
|
+
/**
|
|
73
|
+
* mm:ss.0
|
|
74
|
+
* 02:30.0
|
|
75
|
+
*/
|
|
76
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["TimeMinutesSecondsDecimal"] = 47] = "TimeMinutesSecondsDecimal";
|
|
77
|
+
/**
|
|
78
|
+
* ##0.0E+0
|
|
79
|
+
* 1.2E+3
|
|
80
|
+
*/
|
|
81
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Scientific2"] = 48] = "Scientific2";
|
|
82
|
+
/**
|
|
83
|
+
* @
|
|
84
|
+
* Text
|
|
85
|
+
*/
|
|
86
|
+
XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Text"] = 49] = "Text";
|
|
87
|
+
})(XlsxBuiltInNumberFormat || (XlsxBuiltInNumberFormat = {}));
|
|
88
|
+
export var CellType;
|
|
89
|
+
(function (CellType) {
|
|
90
|
+
CellType["Boolean"] = "b";
|
|
91
|
+
CellType["Date"] = "d";
|
|
92
|
+
CellType["Error"] = "e";
|
|
93
|
+
CellType["InlineString"] = "inlineStr";
|
|
94
|
+
CellType["Number"] = "n";
|
|
95
|
+
CellType["SharedString"] = "s";
|
|
96
|
+
CellType["Formula"] = "str";
|
|
97
|
+
})(CellType || (CellType = {}));
|
|
98
|
+
//# sourceMappingURL=interfaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/interfaces.ts"],"names":[],"mappings":"AA2DA,MAAM,CAAN,IAAY,uBAoGX;AApGD,WAAY,uBAAuB;IAC/B,qEAAQ,CAAA;IACR,yEAAU,CAAA;IACV,yFAAkB,CAAA;IAClB,mHAA+B,CAAA;IAC/B,mIAAuC,CAAA;IACvC,iGAAsB,CAAA;IACtB,2FAAmB,CAAA;IACnB,iHAA8B,CAAA;IAC9B,2GAA2B,CAAA;IAE3B,iFAAc,CAAA;IACd,kGAAuB,CAAA;IACvB,kFAAe,CAAA;IACf,8EAAa,CAAA;IACb,gFAAc,CAAA;IAEd;;;OAGG;IACH,gFAAc,CAAA;IAEd;;;OAGG;IACH,gFAAc,CAAA;IAEd;;;OAGG;IACH,4FAAoB,CAAA;IAEpB;;;OAGG;IACH,wFAAkB,CAAA;IAElB;;;OAGG;IACH,8EAAa,CAAA;IAEb;;;OAGG;IACH,4FAAoB,CAAA;IAEpB;;;OAGG;IACH,sEAAS,CAAA;IAET;;;OAGG;IACH,oFAAgB,CAAA;IAEhB;;;OAGG;IACH,wFAAkB,CAAA;IAElB;;;OAGG;IACH,kGAAuB,CAAA;IAEvB;;;OAGG;IACH,4GAA4B,CAAA;IAE5B;;;OAGG;IACH,gHAA8B,CAAA;IAE9B;;;OAGG;IACH,oFAAgB,CAAA;IAEhB;;;OAGG;IACH,sEAAS,CAAA;AACb,CAAC,EApGW,uBAAuB,KAAvB,uBAAuB,QAoGlC;AAgDD,MAAM,CAAN,IAAY,QAQX;AARD,WAAY,QAAQ;IAChB,yBAAa,CAAA;IACb,sBAAU,CAAA;IACV,uBAAW,CAAA;IACX,sCAA0B,CAAA;IAC1B,wBAAY,CAAA;IACZ,8BAAkB,CAAA;IAClB,2BAAe,CAAA;AACnB,CAAC,EARW,QAAQ,KAAR,QAAQ,QAQnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XlsxAppPropsWriter.d.ts","sourceRoot":"","sources":["../../../../src/stream-writer/XlsxAppPropsWriter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,qBAAa,kBAAmB,SAAQ,cAAc;IAE5C,KAAK;CAMd"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { XlsxFileWriter } from "./XlsxFileWriter";
|
|
2
|
+
export class XlsxAppPropsWriter extends XlsxFileWriter {
|
|
3
|
+
async close() {
|
|
4
|
+
await this.write(`<?xml version="1.0" encoding="UTF-8"?>\n`);
|
|
5
|
+
await this.write(`<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"/>\n`);
|
|
6
|
+
await super.close();
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=XlsxAppPropsWriter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XlsxAppPropsWriter.js","sourceRoot":"","sources":["../../../../src/stream-writer/XlsxAppPropsWriter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IAElD,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,KAAK,CAAC,mLAAmL,CAAC,CAAC;QAEtM,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACJ"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { XlsxFileWriter } from "./XlsxFileWriter";
|
|
2
|
+
export declare class XlsxContentTypesWriter extends XlsxFileWriter {
|
|
3
|
+
overrides: {
|
|
4
|
+
partName: string;
|
|
5
|
+
contentType: string;
|
|
6
|
+
}[];
|
|
7
|
+
addOverride({ partName, contentType }: {
|
|
8
|
+
partName: string;
|
|
9
|
+
contentType: string;
|
|
10
|
+
}): Promise<void>;
|
|
11
|
+
close(): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=XlsxContentTypesWriter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XlsxContentTypesWriter.d.ts","sourceRoot":"","sources":["../../../../src/stream-writer/XlsxContentTypesWriter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,qBAAa,sBAAuB,SAAQ,cAAc;IACtD,SAAS,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,EAAE,CAAK;IAEnD,WAAW,CAAC,EAAC,QAAQ,EAAE,WAAW,EAAC,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC;IAK5E,KAAK;CAcd"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { XlsxFileWriter } from "./XlsxFileWriter";
|
|
2
|
+
export class XlsxContentTypesWriter extends XlsxFileWriter {
|
|
3
|
+
overrides = [];
|
|
4
|
+
async addOverride({ partName, contentType }) {
|
|
5
|
+
this.overrides.push({ partName, contentType });
|
|
6
|
+
return Promise.resolve();
|
|
7
|
+
}
|
|
8
|
+
async close() {
|
|
9
|
+
await this.write(`<?xml version="1.0" encoding="UTF-8"?>\n`);
|
|
10
|
+
await this.write(`<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">`);
|
|
11
|
+
await this.write(`<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" />`);
|
|
12
|
+
await this.write(`<Default Extension="xml" ContentType="application/xml" />`);
|
|
13
|
+
for (const override of this.overrides) {
|
|
14
|
+
await this.write(`<Override PartName="${override.partName}" ContentType="${override.contentType}" />`);
|
|
15
|
+
}
|
|
16
|
+
await this.write(`</Types>`);
|
|
17
|
+
await super.close();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=XlsxContentTypesWriter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XlsxContentTypesWriter.js","sourceRoot":"","sources":["../../../../src/stream-writer/XlsxContentTypesWriter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,OAAO,sBAAuB,SAAQ,cAAc;IACtD,SAAS,GAA8C,EAAE,CAAA;IAEzD,KAAK,CAAC,WAAW,CAAC,EAAC,QAAQ,EAAE,WAAW,EAA0C;QAC9E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,WAAW,EAAC,CAAC,CAAC;QAC7C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;QACjG,MAAM,IAAI,CAAC,KAAK,CAAC,qGAAqG,CAAC,CAAC;QACxH,MAAM,IAAI,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAE9E,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,QAAQ,CAAC,QAAQ,kBAAkB,QAAQ,CAAC,WAAW,MAAM,CAAC,CAAC;QAC3G,CAAC;QAED,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE7B,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XlsxCorePropsWriter.d.ts","sourceRoot":"","sources":["../../../../src/stream-writer/XlsxCorePropsWriter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,qBAAa,mBAAoB,SAAQ,cAAc;IACnD,OAAO,SAAe;IACtB,cAAc,SAAe;IAEvB,KAAK;CAkBd"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { XlsxFileWriter } from "./XlsxFileWriter";
|
|
2
|
+
export class XlsxCorePropsWriter extends XlsxFileWriter {
|
|
3
|
+
creator = 'Stamhoofd';
|
|
4
|
+
lastModifiedBy = 'Stamhoofd';
|
|
5
|
+
async close() {
|
|
6
|
+
await this.write(`<?xml version="1.0" encoding="UTF-8"?>\n`);
|
|
7
|
+
await this.write(`<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>`);
|
|
8
|
+
/*
|
|
9
|
+
<cp:coreProperties
|
|
10
|
+
xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties"
|
|
11
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/"
|
|
12
|
+
xmlns:dcmitype="http://purl.org/dc/dcmitype/"
|
|
13
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
14
|
+
<dc:creator>${escapeXml(this.creator)}</dc:creator>
|
|
15
|
+
<cp:lastModifiedBy>${escapeXml(this.lastModifiedBy)}</cp:lastModifiedBy>
|
|
16
|
+
<dcterms:created xsi:type="dcterms:W3CDTF">${escapeXml(new Date().toISOString())}</dcterms:created>
|
|
17
|
+
<dcterms:modified xsi:type="dcterms:W3CDTF">${escapeXml(new Date().toISOString())}</dcterms:modified>
|
|
18
|
+
</cp:coreProperties>`);*/
|
|
19
|
+
await super.close();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=XlsxCorePropsWriter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XlsxCorePropsWriter.js","sourceRoot":"","sources":["../../../../src/stream-writer/XlsxCorePropsWriter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IACnD,OAAO,GAAG,WAAW,CAAC;IACtB,cAAc,GAAG,WAAW,CAAC;IAE7B,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,KAAK,CAAC,qPAAqP,CAAC,CAAC;QAExQ;;;;;;;;;;yBAUiB;QAEjB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACJ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class XlsxFileWriter {
|
|
2
|
+
/**
|
|
3
|
+
* The sheet writer will write
|
|
4
|
+
*/
|
|
5
|
+
writeStream: WritableStream<Buffer>;
|
|
6
|
+
writeStreamWriter?: WritableStreamDefaultWriter<Buffer>;
|
|
7
|
+
write(str: string): Promise<void>;
|
|
8
|
+
close(): Promise<void>;
|
|
9
|
+
abort(): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=XlsxFileWriter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XlsxFileWriter.d.ts","sourceRoot":"","sources":["../../../../src/stream-writer/XlsxFileWriter.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc;IACvB;;OAEG;IACH,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,iBAAiB,CAAC,EAAE,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAElD,KAAK,CAAC,GAAG,EAAE,MAAM;IASjB,KAAK;IAWL,KAAK;CAcd"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export class XlsxFileWriter {
|
|
2
|
+
/**
|
|
3
|
+
* The sheet writer will write
|
|
4
|
+
*/
|
|
5
|
+
writeStream;
|
|
6
|
+
writeStreamWriter;
|
|
7
|
+
async write(str) {
|
|
8
|
+
if (!this.writeStreamWriter) {
|
|
9
|
+
this.writeStreamWriter = this.writeStream.getWriter();
|
|
10
|
+
}
|
|
11
|
+
await this.writeStreamWriter.ready;
|
|
12
|
+
await this.writeStreamWriter.write(Buffer.from(str, 'utf8'));
|
|
13
|
+
}
|
|
14
|
+
async close() {
|
|
15
|
+
// Release writer
|
|
16
|
+
if (this.writeStreamWriter) {
|
|
17
|
+
await this.writeStreamWriter.ready;
|
|
18
|
+
await this.writeStreamWriter.close();
|
|
19
|
+
this.writeStreamWriter = undefined;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
await this.writeStream.close();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async abort() {
|
|
26
|
+
if (!this.writeStream) {
|
|
27
|
+
// Not yet initialized
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (this.writeStreamWriter) {
|
|
31
|
+
await this.writeStreamWriter.ready;
|
|
32
|
+
await this.writeStreamWriter.close();
|
|
33
|
+
this.writeStreamWriter = undefined;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
await this.writeStream.close();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=XlsxFileWriter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XlsxFileWriter.js","sourceRoot":"","sources":["../../../../src/stream-writer/XlsxFileWriter.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAc;IACvB;;OAEG;IACH,WAAW,CAAyB;IACpC,iBAAiB,CAAuC;IAExD,KAAK,CAAC,KAAK,CAAC,GAAW;QACnB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAC1D,CAAC;QAED,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;QACnC,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,KAAK;QACP,iBAAiB;QACjB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;YACnC,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACvC,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;QAClC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,sBAAsB;YACtB,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;YACnC,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACvC,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;QAClC,CAAC;IACL,CAAC;CACJ"}
|