JSFiddle - React, Tailwind, and code Playground
by Flexmonster Pivot Table
HTML
<script src="https://cdn.flexmonster.com/flexmonster.js"></script>
<div id="pivot-container"></div>
JavaScript
var colorScheme = [
"#F8746D",
"#FA9172",
"#FBAE78",
"#FDD17F",
"#F7E683",
"#DBE081",
"#C3D980",
"#9FCF7E",
"#7DC57C",
"#68BF7B",
];
var minValue = 0;
var maxValue = 15000;
function customizeCellFunction(cell, data) {
if (data && data.type == "value" && !data.isTotal) {
cell.style["background-color"] = getColorFromRange(data.value);
}
}
function getColorFromRange(value) {
if (isNaN(value)) {
value = minValue;
}
value = Math.max(minValue, Math.min(value, maxValue));
var perc = (minValue + value) / maxValue;
var colorIdx = Math.round((colorScheme.length - 1) * perc);
return colorScheme[colorIdx];
}
var pivot = new Flexmonster({
container: "pivot-container",
componentFolder: "https://cdn.flexmonster.com/",
width: "100%",
height: 600,
toolbar: true,
customizeCell: customizeCellFunction,
report: {
dataSource: {
filename: "data/sales.csv",
},
slice: {
drills: {
columns: [
{
tuple: ["category.[bakery]"],
},
],
},
rows: [
{
uniqueName: "Month",
},
{
uniqueName: "[Measures]",
},
],
columns: [
{
uniqueName: "Category",
levelName: "Product Name",
filter: {
members: [
"category.[condiments].[bbq sauce]",
"category.[breakfast cereals].[corn flakes]",
"category.[confectionery]",
"category.[bakery].[chocolate biscuits]",
"category.[fruit preserves].[apple jam]",
"category.[bakery].[apple cake]",
"category.[soups].[tomato soup]",
],
},
},
],
measures: [
{
uniqueName: "Revenue",
aggregation: "sum",
},
],
},
formats: [
{
name: "",
...