@gatekeeper_technology/excel-utils 1.0.3 → 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
- 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
- }
128
-
129
- async function generateXLSXBuffer(data, sheet_name) {
130
- const workbook_creator = new WorkbookCreator();
131
- let _workbook = workbook_creator.createWorkbook();
132
- let _worksheet = workbook_creator.createWorksheet(_workbook, sheet_name);
133
- workbook_creator.loadDataIntoWorksheet(_worksheet, data);
134
- const _array_buffer = (await workbook_creator.getXLSXWorkbookBuffer(_workbook));
135
- return _array_buffer;
136
- }
137
-
138
- /**
139
- * Returns an array of all
140
- */
141
- async function getWorkbookData(data) {
142
- const workbook_creator = new WorkbookCreator();
143
- let _workbook = await workbook_creator.loadXLSX(data);
144
- let _worksheet = _workbook.worksheets[0];
145
-
146
- let rows_data = [];
147
- _worksheet.eachRow((row) => {
148
- rows_data.push(row.values);
149
- });
150
-
151
- return rows_data;
152
- }
1
+ const workbookCreator = require("./workbook_creator.js");
2
+ const utils = require("./utils.js");
153
3
 
154
4
  module.exports = {
155
- getWorkbookData,
156
- generateXLSXBuffer,
157
- WorkbookCreator
5
+ utils,
6
+ workbookCreator
158
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gatekeeper_technology/excel-utils",
3
- "version": "1.0.3",
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",
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
+ }