Products

Back to the Documentation

Data Grid Headers

This section covers creating spreadsheets with custom headers and how to change them programmatically. By default, the user can change the header titles using the context menu or with a long click.

Documentation

Methods

The following methods are available to update the headers programmatically.

Method Description
getHeader Get the header title by column number.
getHeader(column: Number) : void
@param {mixed} - get the header title by column number starting on zero.
getHeaders Get all headers as an Array of strings or a string separated by commas.
getHeader(getAsArray: Boolean) : void
@param {mixed} - get all headers a string or as an Array.
setHeader Set a custom header title.
setHeader(colNumber: Number, newValue?: String) : void
@param {number} - column number starting on zero
@param {string} - New title. Empty to reset the headers.

Initial Settings

The header titles and tooltip can be defined through the attributes title and tooltip within the column settings as follow:

<div id="table"></div>

<script>
jspreadsheet(document.getElementById('table'), {
    columns: [
        {
            type: 'text',
            title: 'Country',
            tooltip: 'This is the country',
            width: '300px',
        }
    ]
});
</script>

Available Events

Event Description
onchangeheader When changing the header title.
onchangeheader(worksheet: Object, column: Number, newValue: String, oldValue: String) : void

Examples

Updates to the headers

The following example starts the spreadsheet with basic headers with the option to update the titles programmatically.

Change the headers programmatically

<html>
<script src="https://jspreadsheet.com/v9/jspreadsheet.js"></script>
<script src="https://jsuites.net/v5/jsuites.js"></script>
<link rel="stylesheet" href="https://jsuites.net/v5/jsuites.css" type="text/css" />
<link rel="stylesheet" href="https://jspreadsheet.com/v9/jspreadsheet.css" type="text/css" />

<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Icons" />

<div id="spreadsheet"></div>

<script>
let data = [
    ['BR', 'Cheese', 1],
    ['CA', 'Apples', 0],
    ['US', 'Carrots', 1],
    ['GB', 'Oranges', 0],
];

// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('YjIyYmNhYTA5MGM5OWY1ZDc2NDdjZjdhZmU5NWY2YWE3YzEzMmE1ZTgwNzU2MDQ1OGE4Y2M1Y2Y4N2VhYTMxNjdkYWIwMTk5OTdiODk1NGVjNGZiOWYxYzVhN2FhYjdhNmFkMzg1OGFiYTFlNDkxZjhlNDI2MTNhODEzNDBkZTYsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpNeU16VXlOREV4TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0ozWldJaUxDSnNiMk5oYkdodmMzUWlYU3dpY0d4aGJpSTZJak0wSWl3aWMyTnZjR1VpT2xzaWRqY2lMQ0oyT0NJc0luWTVJaXdpZGpFd0lpd2lkakV4SWl3aVkyaGhjblJ6SWl3aVptOXliWE1pTENKbWIzSnRkV3hoSWl3aWNHRnljMlZ5SWl3aWNtVnVaR1Z5SWl3aVkyOXRiV1Z1ZEhNaUxDSnBiWEJ2Y25SbGNpSXNJbUpoY2lJc0luWmhiR2xrWVhScGIyNXpJaXdpYzJWaGNtTm9JaXdpY0hKcGJuUWlMQ0p6YUdWbGRITWlMQ0pqYkdsbGJuUWlMQ0p6WlhKMlpYSWlMQ0p6YUdGd1pYTWlYU3dpWkdWdGJ5STZkSEoxWlgwPQ==');

// Create the spreadsheet
let table = jspreadsheet(document.getElementById('spreadsheet'), {
    worksheets: [{
        data: data,
        columns: [
            {
                type: 'autocomplete',
                title: 'Country',
                tooltip: 'Country of origin',
                width: '200px',
                url: '/jspreadsheet/countries'
            },
            {
                type: 'dropdown',
                title: 'Food',
                tooltip: 'Category of food',
                width: '100px',
                source: ['Apples','Bananas','Carrots','Oranges','Cheese']
            },
            {
                type: 'checkbox',
                title: 'Stock',
                tooltip: 'Quantity on stock',
                width: '100px'
            },
            {
                type: 'number',
                title: 'Price',
                tooltip: 'Retail pricing',
                width: '100px'
            },
        ],
    }]
});
document.getElementById("setbtn").onclick = () => table[0].setHeader(document.getElementById('col').value)
document.getElementById("getbtn").onclick = () => alert(table[0].getHeader(document.getElementById('col').value))
</script>

<br/><select id='col'>
    <option value="0">Column 0</option>
    <option value="1">Column 1</option>
    <option value="2">Column 2</option>
    <option value="3">Column 3</option>
</select>

<input type='button' value='Set' id="setbtn"/>
<input type='button' value='Get' id="getbtn"/>

</html>