@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 +6 -1
- package/index.js +5 -156
- package/package.json +13 -11
- package/utils.js +29 -0
- package/workbook_creator.js +127 -0
package/README.md
CHANGED
package/index.js
CHANGED
|
@@ -1,158 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
-
|
|
82
|
-
|
|
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.
|
|
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
|
-
|
|
9
|
-
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/gatekeeper-technology/excel-utils.git"
|
|
10
10
|
},
|
|
11
11
|
"keywords": [
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
"excel",
|
|
13
|
+
"util",
|
|
14
|
+
"gatekeeper"
|
|
15
15
|
],
|
|
16
16
|
"bugs": {
|
|
17
|
-
|
|
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
|
-
|
|
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
|
+
}
|