This tutorial describes how to integrate Flexmonster Pivot with Electron.js – a JavaScript framework that allows creating cross-platform desktop applications.
npm install -g flexmonster-cli
Create the sample project with the following CLI command:
flexmonster create electron -r
The flexmonster create electron
command does the following:
.zip
archive with the sample Electron project from GitHub.flexmonster-electron-project/
folder will appear in your working directory.The -r
option, which is short for --run
:
package.json
.Once the command is executed, a desktop application with the pivot table embedded will be launched.
This guide is based on the Electron quick start tutorial. Follow the steps below to integrate Flexmonster Pivot into a new Electron.js application.
Skip this step if you already have an Electron app.
Step 1.1. Create an empty folder for the new Electron application (e.g., pivot-electron
) and run the following command from this folder:
npm init
This command will ask you several questions to generate a basic package.json
file. For simplicity, press Enter
each time to choose the default options.
The newly created package.json
file should look similar to the following:
{
"name": "pivot-electron",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
Step 1.2. Install Electron.js in the project by running the following command in the console:
npm install electron
Step 1.3. By default, the npm start
command runs the application with Node.js. To run the application with Electron, add the following start script to package.json
:
"scripts": {
"start": "electron .",
"test": "echo \"Error: no test specified\" && exit 1"
}
Step 1.4. HTML files define the Electron application’s user interface. Create an HTML file (e.g., index.html
) with a simple markup:
<!DOCTYPE html> <html> <head> <title>Pivot table for Desktop</title> </head> <body> </body> </html>
Step 1.5. As specified in the package.json
file, the entry point for the application is the index.js
file. Create a simple index.js
file that waits for the application to be ready and then opens the window:
const { app, BrowserWindow } = require('electron') function createWindow () { // create the browser window let win = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, contextIsolation: false } }) // load the previously created index.html file win.loadFile('index.html') } // open the window when the application is ready app.whenReady().then(createWindow)
Install Flexmonster by running this CLI command inside your Electron.js project:
flexmonster add js-flexmonster
The add command installs the flexmonster
npm package to node_modules/
and adds it as an npm dependency to package.json
.
In the index.html
file, add a container for Flexmonster inside the <body>
tag:
<body> <div id="pivotContainer"></div> </body>
Create a new .js
file (e.g., pivot.js
) for Flexmonster. Include the Flexmonster npm module into it and create a new Flexmonster instance:
require('flexmonster');
const pivot = new Flexmonster({
container: "pivotContainer",
toolbar: true,
report: "https://cdn.flexmonster.com/github/demo-report.json"
});
Include the script to embed Flexmonster to the index.html
file:
<body>
<div id="pivotContainer"></div>
<script src="./pivot.js"></script>
</body>
Include Flexmonster styles into the index.html
file as follows:
<head> <title>Pivot table for Desktop</title> <link rel="stylesheet" type="text/css" href="node_modules/flexmonster/flexmonster.min.css" /> </head>
Run the project from the console with the following command:
npm start
A desktop application with the embedded pivot table will be launched.
To shut down the application, close the application window or press Ctrl + C
(Control + C
on macOS) in the console.
You may be interested in the following articles: