UNPKG

alphascript-server

Version:

CRUD operations for mongo and other functionalities to get started quickly in any CMS project

56 lines (46 loc) 1.11 kB
var fs = require('fs'); var xlsx = require('node-xlsx'); module.exports = { fromJson: function (data) { var sheets = data.sheets.map(function (datum) { return getSheet(datum); }); return xlsx.build(sheets); } }; function getSheet(data) { var keys = []; var sheet = []; //header if (data.header) { var headerData = getHeaderRow(data.header); keys = headerData.keys; sheet.unshift(headerData.values); } //data sheet = sheet.concat(data.items.map(function (item) { return keys.map(function (key) { return getField(item, key); }); })); return { data: sheet, name: data.sheetName }; } function getHeaderRow(header) { var keys = [], values = []; for (var key in header) { keys.push(key); values.push(header[key]); } return { keys: keys, values: values }; } function getField(item, key) { if (typeof item === 'undefined') return; var parts = key.split('.'); if (parts.length > 1) { item = item[parts[0]]; key = key.substring(parts[0].length + 1); return getField(item, key); } return item[key]; }