Initial commit
This commit is contained in:
38
node_modules/node-red-contrib-excel/excel/excel.html
generated
vendored
Normal file
38
node_modules/node-red-contrib-excel/excel/excel.html
generated
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
<script type="text/javascript">
|
||||
RED.nodes.registerType('excel',{
|
||||
category: 'function',
|
||||
color: '#6B8E23',
|
||||
defaults: {
|
||||
name: {value:""},
|
||||
file: {value:""}
|
||||
},
|
||||
inputs:1,
|
||||
outputs:1,
|
||||
icon: "file.png",
|
||||
align: 'right',
|
||||
paletteLabel:"excel",
|
||||
label: function() {
|
||||
return this.name||"excel";
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<script type="text/x-red" data-template-name="excel">
|
||||
|
||||
<div class="form-row">
|
||||
<label for="node-input-file"><i class="icon-tag"></i> File *</label>
|
||||
<input type="text" id="node-input-file" placeholder="/home/app/output.xlsx">
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label for="node-input-name"><i class="icon-tag"></i> Name</label>
|
||||
<input type="text" id="node-input-name" placeholder="Name">
|
||||
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script type="text/x-red" data-help-name="excel">
|
||||
<p>Converts a JSON or array of JSONs to excel and writes to the file specified</p>
|
||||
<p>Expects the JSON to be msg.payload</p>
|
||||
<p>File path can be configured on node or set as msg.filepath </p>
|
||||
</script>
|
||||
36
node_modules/node-red-contrib-excel/excel/excel.js
generated
vendored
Normal file
36
node_modules/node-red-contrib-excel/excel/excel.js
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
module.exports = function (RED) {
|
||||
"use strict";
|
||||
var json2xls = require('json2xls');
|
||||
var fs = require('fs');
|
||||
|
||||
function ConvertJSONToExcel(config) {
|
||||
RED.nodes.createNode(this, config);
|
||||
this.file = config.file;
|
||||
this.on('input', function(msg){
|
||||
var node = this;
|
||||
var file = msg.filepath;
|
||||
if(file === undefined || file === null){
|
||||
if(node.file === undefined || node.file === null ){
|
||||
console.log("File path cannot be null");
|
||||
node.error("filepath cannot be null");
|
||||
}else{
|
||||
file = node.file;
|
||||
}
|
||||
}
|
||||
if(msg.payload === undefined || msg.payload === null){
|
||||
console.log("Payload cannot be blank");
|
||||
node.error("payload cannot be null");
|
||||
}else{
|
||||
var xls = json2xls(msg.payload);
|
||||
fs.writeFileSync(file, xls, 'binary');
|
||||
msg.attachment=file;
|
||||
msg.filename=file;
|
||||
msg.file=file;
|
||||
node.send(msg);
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
RED.nodes.registerType("excel", ConvertJSONToExcel);
|
||||
}
|
||||
Reference in New Issue
Block a user