xc
5.0/51
xlsx-chart
npm i xlsx-chart
xc

xlsx-chart

Node.js excel chart builder

by Dmitriy Samortsev

0.4.3 (see all)License:MITTypeScript:Not Found
npm i xlsx-chart
Readme

xlsx-chart

Node.js excel chart builder

Quick start

Install

npm install xlsx-chart

Generate and write chart to file

var XLSXChart = require ("xlsx-chart");
var xlsxChart = new XLSXChart ();
var opts = {
    file: "chart.xlsx",
    chart: "column",
    titles: [
        "Title 1",
        "Title 2",
        "Title 3"
    ],
    fields: [
        "Field 1",
        "Field 2",
        "Field 3",
        "Field 4"
    ],
    data: {
        "Title 1": {
            "Field 1": 5,
            "Field 2": 10,
            "Field 3": 15,
            "Field 4": 20 
        },
        "Title 2": {
            "Field 1": 10,
            "Field 2": 5,
            "Field 3": 20,
            "Field 4": 15
        },
        "Title 3": {
            "Field 1": 20,
            "Field 2": 15,
            "Field 3": 10,
            "Field 4": 5
        }
    }
};
xlsxChart.writeFile (opts, function (err) {
  console.log ("File: ", opts.file);
});

Generate and download chart data

xlsxChart.generate (opts, function (err, data) {
    res.set ({
      "Content-Type": "application/vnd.ms-excel",
      "Content-Disposition": "attachment; filename=chart.xlsx",
      "Content-Length": data.length
    });
    res.status (200).send (data);
});

Chart types

column, bar, line, area, radar, scatter, pie

Mixing

You can mix column, bar, line, area.

Custom template

Default templates: xlsx-chart/template/*.xlsx

var opts = {
    file: "chart.xlsx",
    chart: "column",
    templatePath: __dirname + "/myColumn.xlsx",
    ...
};
xlsxChart.writeFile (opts, function (err) {
  console.log ("File: ", opts.file);
});

Multiple charts

let fs = require ("fs");
let XLSXChart = require ("xlsx-chart");
let xlsxChart = new XLSXChart ();
let opts = {
    charts: [{
        chart: "column",
        titles: [
            "Title 1",
            "Title 2",
            "Title 3"
        ],
        fields: [
            "Field 1",
            "Field 2",
            "Field 3",
            "Field 4"
        ],
        data: {
            "Title 1": {
                "Field 1": 5,
                "Field 2": 10,
                "Field 3": 15,
                "Field 4": 20
            },
            "Title 2": {
                "Field 1": 10,
                "Field 2": 5,
                "Field 3": 20,
                "Field 4": 15
            },
            "Title 3": {
                "Field 1": 20,
                "Field 2": 15,
                "Field 3": 10,
                "Field 4": 5
            }
        },
        chartTitle: "Title 1"
    }, {
        chart: "column",
        titles: [
            "Title 1",
            "Title 2",
            "Title 3"
        ],
        fields: [
            "Field 1",
            "Field 2",
            "Field 3",
            "Field 4"
        ],
        data: {
            "Title 1": {
                "Field 1": 5,
                "Field 2": 10,
                "Field 3": 15,
                "Field 4": 20
            },
            "Title 2": {
                "Field 1": 10,
                "Field 2": 5,
                "Field 3": 20,
                "Field 4": 15
            },
            "Title 3": {
                "Field 1": 20,
                "Field 2": 15,
                "Field 3": 10,
                "Field 4": 5
            }
        },
        chartTitle: "Title 2"
    }, {
        chart: "column",
        titles: [
            "Title 1",
            "Title 2",
        ],
        fields: [
            "Field 1",
            "Field 2",
            "Field 3",
        ],
        data: {
            "Title 1": {
                "Field 1": 15,
                "Field 2": 30,
                "Field 3": 45,
            },
            "Title 2": {
                "Field 1": 5,
                "Field 2": 2,
                "Field 3": 10
            }
        },
        chartTitle: "Title 3"
    }]
};
xlsxChart.generate (opts, function (err, data) {
    fs.writeFileSync ("chart.xlsx", data);
});

Examples

column.js
alt tag
bar.js
alt tag
line.js
alt tag
area.js
alt tag
radar.js
alt tag
scatter.js
alt tag
pie.js
alt tag
columnLine.js
alt tag
mix.js
alt tag

Author

Dmitriy Samortsev

MIT

Downloads/wk

377

GitHub Stars

59

LAST COMMIT

1yr ago

MAINTAINERS

1

CONTRIBUTORS

3

OPEN ISSUES

11

OPEN PRs

3
VersionTagPublished
0.4.3
latest
1yr ago
No alternatives found
No tutorials found
Add a tutorial
No dependencies found

Rate & Review

100