@gatekeeper_technology/excel-utils 1.0.9 → 1.0.11

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 CHANGED
@@ -1,19 +1,47 @@
1
- # Gatekeeper's Excel Utils
2
-
3
- ## Changelog
4
- ### [1.00.09] 24-08-2022
5
- ### Added
6
- - Ability to load data into worksheet with row offset.
7
- ### [1.00.08] 24-08-2022
8
- ### Added
9
- - Ability to get worksheet by name.
10
- - Ability to get worksheet by index.
11
- ### [1.00.07] 24-08-2022
12
- ### Fixed
13
- - Fixed bug where workbook_creator class was not exported properly.
14
- ### [1.00.05] 18-03-2022
15
- ### Changed
16
- - Fixed import bug
17
- ### [1.00.04] 18-03-2022
18
- #### Changed
19
- - Moved the functions and WorkbookCreator Class each to their own folder.
1
+ # Gatekeeper's Excel Utils
2
+
3
+ ## Changelog
4
+
5
+ ### [1.0.11] 17-04-2025
6
+
7
+ ### Changed
8
+
9
+ - Changed the way the workbook_creator class gets exported.
10
+ - Removed 'date1904' property from the workbook_creator class.
11
+
12
+ ### [1.00.10] 24-08-2022
13
+
14
+ ### Fixed
15
+
16
+ - Bug with loadDataIntoWorksheetWithRowOffset function which did not load data correctly.
17
+
18
+ ### [1.00.09] 24-08-2022
19
+
20
+ ### Added
21
+
22
+ - Ability to load data into worksheet with row offset.
23
+
24
+ ### [1.00.08] 24-08-2022
25
+
26
+ ### Added
27
+
28
+ - Ability to get worksheet by name.
29
+ - Ability to get worksheet by index.
30
+
31
+ ### [1.00.07] 24-08-2022
32
+
33
+ ### Fixed
34
+
35
+ - Fixed bug where workbook_creator class was not exported properly.
36
+
37
+ ### [1.00.05] 18-03-2022
38
+
39
+ ### Changed
40
+
41
+ - Fixed import bug
42
+
43
+ ### [1.00.04] 18-03-2022
44
+
45
+ #### Changed
46
+
47
+ - Moved the functions and WorkbookCreator Class each to their own folder.
package/index.js CHANGED
@@ -1,7 +1,7 @@
1
- const workbookCreator = require("./workbook_creator.js");
2
- const utils = require("./utils.js");
3
-
4
- module.exports = {
5
- utils,
6
- workbookCreator
1
+ const workbookCreator = require("./workbook_creator.js");
2
+ const utils = require("./utils.js");
3
+
4
+ module.exports = {
5
+ utils,
6
+ workbookCreator
7
7
  }
package/package.json CHANGED
@@ -1,27 +1,28 @@
1
- {
2
- "name": "@gatekeeper_technology/excel-utils",
3
- "version": "1.0.9",
4
- "description": "Gatekeeper's excel Utils - shared in NPM",
5
- "author": "David Holtzhausen",
6
- "main": "index.js",
7
- "repository": {
8
- "type": "git",
9
- "url": "git+https://github.com/gatekeeper-technology/excel-utils.git"
10
- },
11
- "keywords": [
12
- "excel",
13
- "util",
14
- "gatekeeper"
15
- ],
16
- "bugs": {
17
- "url": "https://github.com/gatekeeper-technology/excel-utils/issues"
18
- },
19
- "homepage": "https://github.com/gatekeeper-technology/excel-utils#readme",
20
- "scripts": {
21
- "test": "echo \"Error: no test specified\" && exit 1"
22
- },
23
- "license": "ISC",
24
- "dependencies": {
25
- "exceljs": "^4.3.0"
26
- }
27
- }
1
+ {
2
+ "name": "@gatekeeper_technology/excel-utils",
3
+ "version": "1.0.11",
4
+ "description": "Gatekeeper's excel Utils - shared in NPM",
5
+ "author": "David Holtzhausen",
6
+ "main": "index.js",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/gatekeeper-technology/excel-utils.git"
10
+ },
11
+ "keywords": [
12
+ "excel",
13
+ "util",
14
+ "gatekeeper"
15
+ ],
16
+ "bugs": {
17
+ "url": "https://github.com/gatekeeper-technology/excel-utils/issues"
18
+ },
19
+ "homepage": "https://github.com/gatekeeper-technology/excel-utils#readme",
20
+ "scripts": {
21
+ "test": "echo \"Error: no test specified\" && exit 1"
22
+ },
23
+ "license": "ISC",
24
+ "dependencies": {
25
+ "@gatekeeper_technology/excel-utils": "file:",
26
+ "exceljs": "^4.3.0"
27
+ }
28
+ }
package/utils.js CHANGED
@@ -1,31 +1,31 @@
1
- const WorkbookCreator = require("./workbook_creator.js");
2
-
3
- async function generateXLSXBuffer(data, sheet_name) {
4
- const workbook_creator = new WorkbookCreator();
5
- let _workbook = workbook_creator.createWorkbook();
6
- let _worksheet = workbook_creator.createWorksheet(_workbook, sheet_name);
7
- workbook_creator.loadDataIntoWorksheet(_worksheet, data);
8
- const _array_buffer = (await workbook_creator.getXLSXWorkbookBuffer(_workbook));
9
- return _array_buffer;
10
- }
11
-
12
- /**
13
- * Returns an array of all
14
- */
15
- async function getWorkbookData(data) {
16
- const workbook_creator = new WorkbookCreator();
17
- let _workbook = await workbook_creator.loadXLSX(data);
18
- let _worksheet = _workbook.worksheets[0];
19
-
20
- let rows_data = [];
21
- _worksheet.eachRow((row) => {
22
- rows_data.push(row.values);
23
- });
24
-
25
- return rows_data;
26
- }
27
-
28
- module.exports = {
29
- generateXLSXBuffer,
30
- getWorkbookData
31
- }
1
+ const WorkbookCreator = require("./workbook_creator.js");
2
+
3
+ async function generateXLSXBuffer(data, sheet_name) {
4
+ const workbook_creator = new WorkbookCreator();
5
+ let _workbook = workbook_creator.createWorkbook();
6
+ let _worksheet = workbook_creator.createWorksheet(_workbook, sheet_name);
7
+ workbook_creator.loadDataIntoWorksheet(_worksheet, data);
8
+ const _array_buffer = (await workbook_creator.getXLSXWorkbookBuffer(_workbook));
9
+ return _array_buffer;
10
+ }
11
+
12
+ /**
13
+ * Returns an array of all
14
+ */
15
+ async function getWorkbookData(data) {
16
+ const workbook_creator = new WorkbookCreator();
17
+ let _workbook = await workbook_creator.loadXLSX(data);
18
+ let _worksheet = _workbook.worksheets[0];
19
+
20
+ let rows_data = [];
21
+ _worksheet.eachRow((row) => {
22
+ rows_data.push(row.values);
23
+ });
24
+
25
+ return rows_data;
26
+ }
27
+
28
+ module.exports = {
29
+ generateXLSXBuffer,
30
+ getWorkbookData
31
+ }
@@ -1,166 +1,164 @@
1
- const ExcelJS = require("exceljs");
2
-
3
- let WorkbookCreator = class {
4
- constructor() {
5
-
6
- }
7
- /**
8
- * Create a new workbook
9
- * @returns {ExcelJS.Workbook} The created workbook
10
- */
11
- createWorkbook() {
12
- const workbook = new ExcelJS.Workbook();
13
- workbook.creator = "Gatekeeper Technology";
14
- workbook.lastModifiedBy = "Gatekeeper Technology";
15
- workbook.created = new Date();
16
- workbook.modified = new Date();
17
- workbook.properties.date1904 = true;
18
- workbook.calcProperties.fullCalcOnLoad = true;
19
- // workbook.lastPrinted = new Date(2016, 9, 27);
20
-
21
- workbook.views = [
22
- {
23
- x: 0,
24
- y: 0,
25
- width: 10000,
26
- height: 20000,
27
- firstSheet: 0,
28
- activeTab: 1,
29
- visibility: "visible",
30
- },
31
- ];
32
-
33
- return workbook;
34
- }
35
-
36
- /**
37
- * Create a new workbook
38
- * @param {ExcelJS.Workbook} workbook Workbook
39
- * @returns {ExcelJS.Worksheet} The created workbook
40
- */
41
- createWorksheet(workbook, worksheet_name) {
42
- const worksheet = workbook.addWorksheet(worksheet_name ? worksheet_name : 'sheet', {
43
- pageSetup: { paperSize: 9, orientation: "landscape" },
44
- });
45
-
46
- return worksheet;
47
- }
48
-
49
- /**
50
- * Create a new workbook
51
- * @param {ExcelJS.Worksheet} worksheet Worksheet
52
- * @param {string[][]} data Data array
53
- * @returns {ExcelJS.Worksheet} The created workbook
54
- */
55
- loadDataIntoWorksheet(worksheet, data) {
56
- for (let [_index, _row_data] of data.entries()) {
57
- // Get a row object. If it doesn't already exist, a new empty one will be returned
58
- let row = worksheet.getRow(_index + 1);
59
- row.values = _row_data;
60
- }
61
-
62
- return worksheet;
63
- }
64
-
65
- /**
66
- * Load data into worksheet
67
- * @param {ExcelJS.Worksheet} worksheet Worksheet
68
- * @param {string[][]} data Data array
69
- * @param {number} offset Number of rows to skip before writing data
70
- * @returns {ExcelJS.Worksheet} The created workbook
71
- */
72
- loadDataIntoWorksheetWithRowOffset(worksheet, data, row_offset) {
73
- for (let _row_data of data.entries()) {
74
- // Get a row object. If it doesn't already exist, a new empty one will be returned
75
- let row = worksheet.getRow(row_offset + 1);
76
- row.values = _row_data;
77
- }
78
-
79
- return worksheet;
80
- }
81
-
82
- /**
83
- * Save workbook as XLSX
84
- * @param {ExcelJS.Workbook} workbook Workbook
85
- * @param {string} filename The filename
86
- */
87
- async saveXLSXWorkbook(workbook, filename) {
88
- await workbook.xlsx.writeFile(filename);
89
- }
90
-
91
- /**
92
- * Get array buffer data
93
- * @param {ExcelJS.Workbook} workbook Workbook
94
- */
95
- async getXLSXWorkbookBuffer(workbook) {
96
- // write to a new buffer
97
- const uint8array = (await workbook.xlsx.writeBuffer());
98
- return uint8array.buffer;
99
- }
100
-
101
- /**
102
- * Converts Workbook Buffer into a ExcelJS.Workbook
103
- * @param {Buffer} workbook_buffer - Workbook data in a Buffer
104
- * @returns {Promise<ExcelJS.Workbook>}
105
- */
106
- async loadXLSX(workbook_buffer) {
107
- const workbook = new ExcelJS.Workbook();
108
- await workbook.xlsx.load(workbook_buffer);
109
-
110
- return workbook;
111
- }
112
-
113
- /**
114
- * Get the workbook's details
115
- * @param {ExcelJS.Workbook} workbook
116
- * @returns {Object} An object containing information of the workbook
117
- */
118
- getWorkbookDetails(workbook) {
119
- if (!workbook) return null;
120
- return {
121
- created: workbook.created,
122
- modified: workbook.modified,
123
- title: workbook.title,
124
- creator: workbook.creator,
125
- company: workbook.company,
126
- description: workbook.description,
127
- };
128
- }
129
-
130
- /**
131
- * Get the worksheet's details
132
- * @param {ExcelJS.Worksheet} worksheet
133
- * @returns {Object} An object containing information of the worksheet
134
- */
135
- getWorksheetDetails(worksheet) {
136
- return {
137
- id: worksheet.id,
138
- properties: worksheet.properties,
139
- name: worksheet.name,
140
- state: worksheet.state,
141
- };
142
- }
143
-
144
- /**
145
- * Gets worksheet with specified name within workbook
146
- * @param {ExcelJS.Workbook} workbook
147
- * @param {string} worksheet_name
148
- * @returns {ExcelJS.Worksheet} Worksheet with specified name
149
- */
150
- getWorksheetByName(workbook, worksheet_name) {
151
- return workbook.getWorksheet(worksheet_name);
152
- }
153
-
154
- /**
155
- * Gets worksheet at specified index within workbook
156
- * @param {ExcelJS.Workbook} workbook
157
- * @param {number} index
158
- * @returns {ExcelJS.Worksheet} Worksheet at specified index
159
- */
160
- getWorksheetByIndex(workbook, worksheet_index) {
161
- return workbook.worksheets[worksheet_index];
162
- }
163
-
164
- }
165
-
166
- module.exports = WorkbookCreator;
1
+ const ExcelJS = require("exceljs");
2
+
3
+ class WorkbookCreator {
4
+ constructor() {}
5
+ /**
6
+ * Create a new workbook
7
+ * @returns {ExcelJS.Workbook} The created workbook
8
+ */
9
+ createWorkbook() {
10
+ const workbook = new ExcelJS.Workbook();
11
+ workbook.creator = "Gatekeeper Technology";
12
+ workbook.lastModifiedBy = "Gatekeeper Technology";
13
+ workbook.created = new Date();
14
+ workbook.modified = new Date();
15
+ // workbook.properties.date1904 = true;
16
+ workbook.calcProperties.fullCalcOnLoad = true;
17
+ // workbook.lastPrinted = new Date(2016, 9, 27);
18
+
19
+ workbook.views = [
20
+ {
21
+ x: 0,
22
+ y: 0,
23
+ width: 10000,
24
+ height: 20000,
25
+ firstSheet: 0,
26
+ activeTab: 1,
27
+ visibility: "visible",
28
+ },
29
+ ];
30
+
31
+ return workbook;
32
+ }
33
+
34
+ /**
35
+ * Create a new Worksheet
36
+ * @param {ExcelJS.Workbook} workbook Workbook
37
+ * @returns {ExcelJS.Worksheet} The created Worksheet
38
+ */
39
+ createWorksheet(workbook, worksheet_name) {
40
+ const worksheet = workbook.addWorksheet(worksheet_name ? worksheet_name : "sheet", {
41
+ pageSetup: { paperSize: 9, orientation: "landscape" },
42
+ });
43
+
44
+ return worksheet;
45
+ }
46
+
47
+ /**
48
+ * Create a new workbook
49
+ * @param {ExcelJS.Worksheet} worksheet Worksheet
50
+ * @param {string[][]} data Data array
51
+ * @returns {ExcelJS.Worksheet} The created workbook
52
+ */
53
+ loadDataIntoWorksheet(worksheet, data) {
54
+ for (let [_index, _row_data] of data.entries()) {
55
+ // Get a row object. If it doesn't already exist, a new empty one will be returned
56
+ let row = worksheet.getRow(_index + 1);
57
+ row.values = _row_data;
58
+ }
59
+
60
+ return worksheet;
61
+ }
62
+
63
+ /**
64
+ * Load data into worksheet with row offset
65
+ * @param {ExcelJS.Worksheet} worksheet Worksheet
66
+ * @param {string[][]} data Data array
67
+ * @param {number} offset Number of rows to skip before writing data
68
+ * @returns {ExcelJS.Worksheet} The created Worksheet
69
+ */
70
+ loadDataIntoWorksheetWithRowOffset(worksheet, data, row_offset) {
71
+ for (let [_index, _row_data] of data.entries()) {
72
+ let current_row_index = _index + row_offset;
73
+ // Get a row object. If it doesn't already exist, a new empty one will be returned
74
+ let row = worksheet.getRow(current_row_index + 1);
75
+ row.values = _row_data;
76
+ }
77
+
78
+ return worksheet;
79
+ }
80
+
81
+ /**
82
+ * Save workbook as XLSX
83
+ * @param {ExcelJS.Workbook} workbook Workbook
84
+ * @param {string} filename The filename
85
+ */
86
+ async saveXLSXWorkbook(workbook, filename) {
87
+ await workbook.xlsx.writeFile(filename);
88
+ }
89
+
90
+ /**
91
+ * Get array buffer data
92
+ * @param {ExcelJS.Workbook} workbook Workbook
93
+ */
94
+ async getXLSXWorkbookBuffer(workbook) {
95
+ // write to a new buffer
96
+ const uint8array = await workbook.xlsx.writeBuffer();
97
+ return uint8array.buffer;
98
+ }
99
+
100
+ /**
101
+ * Converts Workbook Buffer into a ExcelJS.Workbook
102
+ * @param {Buffer} workbook_buffer - Workbook data in a Buffer
103
+ * @returns {Promise<ExcelJS.Workbook>}
104
+ */
105
+ async loadXLSX(workbook_buffer) {
106
+ const workbook = new ExcelJS.Workbook();
107
+ await workbook.xlsx.load(workbook_buffer);
108
+
109
+ return workbook;
110
+ }
111
+
112
+ /**
113
+ * Get the workbook's details
114
+ * @param {ExcelJS.Workbook} workbook
115
+ * @returns {Object} An object containing information of the workbook
116
+ */
117
+ getWorkbookDetails(workbook) {
118
+ if (!workbook) return null;
119
+ return {
120
+ created: workbook.created,
121
+ modified: workbook.modified,
122
+ title: workbook.title,
123
+ creator: workbook.creator,
124
+ company: workbook.company,
125
+ description: workbook.description,
126
+ };
127
+ }
128
+
129
+ /**
130
+ * Get the worksheet's details
131
+ * @param {ExcelJS.Worksheet} worksheet
132
+ * @returns {Object} An object containing information of the worksheet
133
+ */
134
+ getWorksheetDetails(worksheet) {
135
+ return {
136
+ id: worksheet.id,
137
+ properties: worksheet.properties,
138
+ name: worksheet.name,
139
+ state: worksheet.state,
140
+ };
141
+ }
142
+
143
+ /**
144
+ * Gets worksheet with specified name within workbook
145
+ * @param {ExcelJS.Workbook} workbook
146
+ * @param {string} worksheet_name
147
+ * @returns {ExcelJS.Worksheet} Worksheet with specified name
148
+ */
149
+ getWorksheetByName(workbook, worksheet_name) {
150
+ return workbook.getWorksheet(worksheet_name);
151
+ }
152
+
153
+ /**
154
+ * Gets worksheet at specified index within workbook
155
+ * @param {ExcelJS.Workbook} workbook
156
+ * @param {number} index
157
+ * @returns {ExcelJS.Worksheet} Worksheet at specified index
158
+ */
159
+ getWorksheetByIndex(workbook, worksheet_index) {
160
+ return workbook.worksheets[worksheet_index];
161
+ }
162
+ }
163
+
164
+ module.exports = WorkbookCreator;