@gatekeeper_technology/excel-utils 1.0.2 → 1.0.4

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