README
xlsx-encrypter
Service for generating and encrypting Excel/XLSX files.
Installation
npm i xlsx-encrypter
or use Yarn
yarn add xlsx-encrypter
Usage
Simple usage:
import { XlsxGenerator } from "xlsx-encrypter";
const xlsxGenerator = new XlsxGenerator();
const data = [
{
fruit: "Apples",
quantity: 4,
price: "£6.86",
},
];
// Create worksheets
const workSheet = xlsxGenerator.createWorkSheet(data, "Fruit Sales");
// Create XLSX file
xlsxGenerator.exportWorkSheetsToFile("/file-dir/file-name.xlsx", [workSheet]);
or the older way
const XlsxGenerator = require("xlsx-encrypter");
const data = [
{
fruit: "Apples",
quantity: 4,
price: "£6.86",
},
];
// Create worksheets
const workSheet = XlsxGenerator.createWorkSheet(data, "Fruit Sales");
// Create XLSX file
XlsxGenerator.exportWorkSheetsToFile("/file-dir/file-name.xlsx", [workSheet]);
Multiple Worksheets
Can handle multiple worksheets.
import { XlsxGenerator } from "xlsx-encrypter";
const xlsxGenerator = new XlsxGenerator();
const data1 = [
{
fruit: "Apples",
quantity: 4,
price: "£6.86",
},
];
const data2 = [
{
fruit: "Oranges",
quantity: 2,
price: "£3.26",
},
];
// Create worksheets
const workSheet1 = xlsxGenerator.createWorkSheet(data1, "Fruit Sales: May");
const workSheet2 = xlsxGenerator.createWorkSheet(data2, "Fruit Sales: June");
// Create XLSX file
xlsxGenerator.exportWorkSheetsToFile("/file-dir/file-name.xlsx", [
workSheet1,
workSheet2,
]);
Headers
Default headers can be added. NOTE: Headers must match data structure exactly.
import { XlsxGenerator } from "xlsx-encrypter";
const xlsxGenerator = new XlsxGenerator();
const data = [
{
fruit: "Apples",
quantity: 4,
price: "£6.86",
},
];
const headers = ["fruit", "quantity", "price"];
// Create worksheets
const workSheet = xlsxGenerator.createWorkSheet(data, "Fruit Sales", headers);
// Create XLSX file
xlsxGenerator.exportWorkSheetsToFile("/file-dir/file-name.xlsx", [workSheet]);
Cell Origin
The cell origin of the data can be specified in A1
format.
import { XlsxGenerator } from "xlsx-encrypter";
const xlsxGenerator = new XlsxGenerator();
const data = [];
const headers = ["fruit", "quantity", "price"];
const cellOrigin = "B2";
// Create worksheets
const workSheet = xlsxGenerator.createWorkSheet(
data,
"Fruit Sales",
headers,
cellOrigin
);
// Create XLSX file
xlsxGenerator.exportWorkSheetsToFile("/file-dir/file-name.xlsx", [workSheet]);
Password Encryption
import { XlsxGenerator } from "xlsx-encrypter";
const xlsxGenerator = new XlsxGenerator();
const data = [];
const password = "SuperSecurePassword";
// Create worksheets
const workSheet = xlsxGenerator.createWorkSheet(data, "Fruit Sales");
// Create XLSX file with password
xlsxGenerator.exportWorkSheetsToFile(
"/file-dir/file-name.xlsx",
[workSheet],
password
);
Getting Started
Prerequisites
To write and test code you will need NodeJS and Yarn installed. If your on a Mac, use Homebrew for installation.
brew install node
brew install yarn
Installing
Install project dependencies
yarn
Tests
Unit Tests
Unit tests use jest. Tests can be run globally from the root directory by running yarn test
yarn test
Coding Style Tests
Code style is enforced by using a linter (eslint) and Prettier.
yarn lint
Deployment
Automated
Automated deployment is undertaken with CircleCI.
main
: Deploy to NPM
Built With
Languages / Core Tools
- Typescript - The primary language
Secondary Tooling
Versioning
You'll need to bump the package version numbers manually for changes to be pushed to the npm registry.
Contributing
Have a bug? File an issue with a simple example that reproduces this so we can take a look and confirm.
Want to make a change? Submit a PR, explain why it's useful, and make sure you've updated the docs (this file) and the tests.
Authors
Theo Jones - MrKiplin