-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconvert.js
41 lines (32 loc) · 1.21 KB
/
convert.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
const xlsx = require("xlsx");
const workBook = xlsx.readFile("./uploads/db.xlsx");
const sheet_name_list = workBook.SheetNames;
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/test', {useNewUrlParser: true, useUnifiedTopology: true},
() => console.log("Connected to db.."));
// ____________ Converting part
console.log(sheet_name_list);
sheet_name_list.forEach(sh => {
const worksheet = workBook.Sheets[sh];
const headers = {};
let data = [];
for (const z in worksheet) {
const col = z.substring(0, 1);
const row = parseInt(z.substring(1));
const value = worksheet[z].v;
if (row === 1) {
headers[col] = value;
continue;
}
if (!data[row]) data[row] = {};
data[row][headers[col]] = value;
}
data.shift();
data.shift();
console.log(data);
const schema = new mongoose.Schema({ name: 'string', size: 'string' });
const Tank = mongoose.model('Tank', schema);
Tank.deleteMany().then(result => console.log(result)).catch(err => console.log(err));
Tank.insertMany(data).then(result => console.log(result)).catch(err => console.log(err));
});
// ____________ Updating part