@gatekeeper_technology/excel-utils 1.0.10 → 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,22 +1,47 @@
1
- # Gatekeeper's Excel Utils
2
-
3
- ## Changelog
4
- ### [1.00.10] 24-08-2022
5
- ### Fixed
6
- - Bug with loadDataIntoWorksheetWithRowOffset function which did not load data correctly.
7
- ### [1.00.09] 24-08-2022
8
- ### Added
9
- - Ability to load data into worksheet with row offset.
10
- ### [1.00.08] 24-08-2022
11
- ### Added
12
- - Ability to get worksheet by name.
13
- - Ability to get worksheet by index.
14
- ### [1.00.07] 24-08-2022
15
- ### Fixed
16
- - Fixed bug where workbook_creator class was not exported properly.
17
- ### [1.00.05] 18-03-2022
18
- ### Changed
19
- - Fixed import bug
20
- ### [1.00.04] 18-03-2022
21
- #### Changed
22
- - 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.10",
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,167 +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 Worksheet
38
- * @param {ExcelJS.Workbook} workbook Workbook
39
- * @returns {ExcelJS.Worksheet} The created Worksheet
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 with row offset
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 Worksheet
71
- */
72
- loadDataIntoWorksheetWithRowOffset(worksheet, data, row_offset) {
73
- for (let [_index, _row_data] of data.entries()) {
74
- let current_row_index = _index + row_offset
75
- // Get a row object. If it doesn't already exist, a new empty one will be returned
76
- let row = worksheet.getRow(current_row_index + 1);
77
- row.values = _row_data;
78
- }
79
-
80
- return worksheet;
81
- }
82
-
83
- /**
84
- * Save workbook as XLSX
85
- * @param {ExcelJS.Workbook} workbook Workbook
86
- * @param {string} filename The filename
87
- */
88
- async saveXLSXWorkbook(workbook, filename) {
89
- await workbook.xlsx.writeFile(filename);
90
- }
91
-
92
- /**
93
- * Get array buffer data
94
- * @param {ExcelJS.Workbook} workbook Workbook
95
- */
96
- async getXLSXWorkbookBuffer(workbook) {
97
- // write to a new buffer
98
- const uint8array = (await workbook.xlsx.writeBuffer());
99
- return uint8array.buffer;
100
- }
101
-
102
- /**
103
- * Converts Workbook Buffer into a ExcelJS.Workbook
104
- * @param {Buffer} workbook_buffer - Workbook data in a Buffer
105
- * @returns {Promise<ExcelJS.Workbook>}
106
- */
107
- async loadXLSX(workbook_buffer) {
108
- const workbook = new ExcelJS.Workbook();
109
- await workbook.xlsx.load(workbook_buffer);
110
-
111
- return workbook;
112
- }
113
-
114
- /**
115
- * Get the workbook's details
116
- * @param {ExcelJS.Workbook} workbook
117
- * @returns {Object} An object containing information of the workbook
118
- */
119
- getWorkbookDetails(workbook) {
120
- if (!workbook) return null;
121
- return {
122
- created: workbook.created,
123
- modified: workbook.modified,
124
- title: workbook.title,
125
- creator: workbook.creator,
126
- company: workbook.company,
127
- description: workbook.description,
128
- };
129
- }
130
-
131
- /**
132
- * Get the worksheet's details
133
- * @param {ExcelJS.Worksheet} worksheet
134
- * @returns {Object} An object containing information of the worksheet
135
- */
136
- getWorksheetDetails(worksheet) {
137
- return {
138
- id: worksheet.id,
139
- properties: worksheet.properties,
140
- name: worksheet.name,
141
- state: worksheet.state,
142
- };
143
- }
144
-
145
- /**
146
- * Gets worksheet with specified name within workbook
147
- * @param {ExcelJS.Workbook} workbook
148
- * @param {string} worksheet_name
149
- * @returns {ExcelJS.Worksheet} Worksheet with specified name
150
- */
151
- getWorksheetByName(workbook, worksheet_name) {
152
- return workbook.getWorksheet(worksheet_name);
153
- }
154
-
155
- /**
156
- * Gets worksheet at specified index within workbook
157
- * @param {ExcelJS.Workbook} workbook
158
- * @param {number} index
159
- * @returns {ExcelJS.Worksheet} Worksheet at specified index
160
- */
161
- getWorksheetByIndex(workbook, worksheet_index) {
162
- return workbook.worksheets[worksheet_index];
163
- }
164
-
165
- }
166
-
167
- 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;