This section provides a comprehensive guide on the properties, events, and methods for managing the cell selection and selection borders in the JSS data grid.
Documentation
Methods
The following methods handle the selections in the JSS data grid.
Method
Description
Update the main selection
selectAll
Select all cells available in the data grid. selectAll() : void
updateSelection
Selects all cells based on the coordinates of the specified DOM elements. updateSelection(e1: DOMElement, e2: DOMElement) : void
updateSelectionFromCoords
Select all cells based on the given coordinates. updateSelectionFromCoords(x1: Number, y1: Number, x2: Number, y2: Number) : void
resetSelection
Remove the selection. resetSelection() : void
Get information from the main selection
isSelected
Verify if the coordinates given are included in the current selection. isSelected(x: Number, y: Number) : Boolean
getSelection
Get the coordinates of the main selection in order. getSelection() : Array | null
getHighlighted
Get the coordinates of the highlighted cells. getHighlighted() : Array | null
getRange
Get the range description of the highlighted cells. getRange() : String | null
getSelectedColumns
Get the selected columns. getSelectedColumns(visibleOnly: Boolean) => Array
getSelectedRows
Get the selected rows. getSelectedRows(visibleOnly: Boolean) => Array
getSelected
Get the worksheet selected cell names or objects. @param {Boolean?} columnNameOnly: To get only the cell names as string (true). Get the cell objects (false). @param {Boolean} ignoreHidden: Exclude hidden cells (true). Bring all cells (false) getSelected(columnNameOnly: Boolean, ignoreHidden: Boolean) => []
Borders or secondary selections
setBorder
Create or update an existing selection with a defined color. setBorder(x1: Number, y1: Number, x2: Number, y2: Number, name: string, colorHex: string) : void
getBorder
Get the selection border object. getBorder(selectionName: string) : void
resetBorders
Reset the selection by its name. Reset all exiting borders when selectionName is not defined. resetBorders(selectionName?: string, resetPosition: boolean) : void
refreshBorders
Refresh one or more selections. Refresh all existing borders when selectionName is not defined. refreshBorders(selectionName?: string) : void
Select all worksheet cells in the grid programmatically.
Sheet1
Search:
A
B
C
D
E
F
1
2
3
4
5
6
<html><scriptsrc="https://jspreadsheet.com/v10/jspreadsheet.js"></script><scriptsrc="https://jsuites.net/v5/jsuites.js"></script><linkrel="stylesheet"href="https://jspreadsheet.com/v10/jspreadsheet.css"type="text/css" /><linkrel="stylesheet"href="https://jsuites.net/v5/jsuites.css"type="text/css" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Material+Icons" /><divid="spreadsheet"></div><br/><buttonid="selectallbtn">Select all</button><buttonid="updateselectionbtn">updateSelectionFromCoords(2,2,3,3)</button><script>// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('YmQ0MzEyMjhiOTc3Yzk4MjlhNDgxZmQwZGZmMWI0Y2VlNmEzMmY3NWExNDA1M2RmNGQ3MGI2MDQ0NzI5ZmI4ZDQxNmI1OGMyNDMzZDRhZGYwMzY5MmNkMzgxYjM3YTQzNjU0OTI0ZTRhMjA4MmQ3OTVhMzM0YjhhNTI4NWEwZWYsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpRME1EZzRORFEwTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0ozWldJaUxDSnNiMk5oYkdodmMzUWlYU3dpY0d4aGJpSTZJak0wSWl3aWMyTnZjR1VpT2xzaWRqY2lMQ0oyT0NJc0luWTVJaXdpZGpFd0lpd2lkakV4SWl3aVkyaGhjblJ6SWl3aVptOXliWE1pTENKbWIzSnRkV3hoSWl3aWNHRnljMlZ5SWl3aWNtVnVaR1Z5SWl3aVkyOXRiV1Z1ZEhNaUxDSnBiWEJ2Y25SbGNpSXNJbUpoY2lJc0luWmhiR2xrWVhScGIyNXpJaXdpYzJWaGNtTm9JaXdpY0hKcGJuUWlMQ0p6YUdWbGRITWlMQ0pqYkdsbGJuUWlMQ0p6WlhKMlpYSWlMQ0p6YUdGd1pYTWlYU3dpWkdWdGJ5STZkSEoxWlgwPQ==');
// Create the spreadsheetlet table = jspreadsheet(document.getElementById('spreadsheet'), {
worksheets: [{
minDimensions: [6,6],
}],
});
document.getElementById("selectallbtn").onclick = () => table[0].selectAll();
document.getElementById("updateselectionbtn").onclick = () => table[0].updateSelectionFromCoords(2,2,3,3);
</script></html>
import { Component, ViewChild, ElementRef } from"@angular/core";
import jspreadsheet from"jspreadsheet";
import"jspreadsheet/dist/jspreadsheet.css"import"jsuites/dist/jsuites.css"// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('YmQ0MzEyMjhiOTc3Yzk4MjlhNDgxZmQwZGZmMWI0Y2VlNmEzMmY3NWExNDA1M2RmNGQ3MGI2MDQ0NzI5ZmI4ZDQxNmI1OGMyNDMzZDRhZGYwMzY5MmNkMzgxYjM3YTQzNjU0OTI0ZTRhMjA4MmQ3OTVhMzM0YjhhNTI4NWEwZWYsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpRME1EZzRORFEwTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0ozWldJaUxDSnNiMk5oYkdodmMzUWlYU3dpY0d4aGJpSTZJak0wSWl3aWMyTnZjR1VpT2xzaWRqY2lMQ0oyT0NJc0luWTVJaXdpZGpFd0lpd2lkakV4SWl3aVkyaGhjblJ6SWl3aVptOXliWE1pTENKbWIzSnRkV3hoSWl3aWNHRnljMlZ5SWl3aWNtVnVaR1Z5SWl3aVkyOXRiV1Z1ZEhNaUxDSnBiWEJ2Y25SbGNpSXNJbUpoY2lJc0luWmhiR2xrWVhScGIyNXpJaXdpYzJWaGNtTm9JaXdpY0hKcGJuUWlMQ0p6YUdWbGRITWlMQ0pqYkdsbGJuUWlMQ0p6WlhKMlpYSWlMQ0p6YUdGd1pYTWlYU3dpWkdWdGJ5STZkSEoxWlgwPQ==');
@Component({
selector: "app-root",
template: `
<div #spreadsheet></div>
<input type="button" value="Select all" (click)="this.worksheets[0].selectAll()" />
<input type="button" value="Select coords (2,2,3,3)" (click)="this.worksheets[0].updateSelectionFromCoords(2,2,3,3)" />`
})
exportclassAppComponent {
@ViewChild("spreadsheet") spreadsheet: ElementRef;
// Worksheetsworksheets: jspreadsheet.worksheetInstance[];
// Create a new data gridngAfterViewInit() {
// Create spreadsheetthis.worksheets = jspreadsheet(this.spreadsheet.nativeElement, {
worksheets: [
{
minDimensions: [6,6],
}
]
});
}
}
Secondary borders
Create secondary borders on the spreadsheet.
Sheet2
Search:
A
B
C
D
E
F
1
2
3
4
5
6
<html><scriptsrc="https://jspreadsheet.com/v10/jspreadsheet.js"></script><scriptsrc="https://jsuites.net/v5/jsuites.js"></script><linkrel="stylesheet"href="https://jspreadsheet.com/v10/jspreadsheet.css"type="text/css" /><linkrel="stylesheet"href="https://jsuites.net/v5/jsuites.css"type="text/css" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Material+Icons" /><divid="spreadsheet"></div><br/><buttonid="createredbtn">Create new red selection</button><buttonid="createbluebtn">Create new blue selection</button><buttonid="resetbtn">Clear all selection</button><script>// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('YmQ0MzEyMjhiOTc3Yzk4MjlhNDgxZmQwZGZmMWI0Y2VlNmEzMmY3NWExNDA1M2RmNGQ3MGI2MDQ0NzI5ZmI4ZDQxNmI1OGMyNDMzZDRhZGYwMzY5MmNkMzgxYjM3YTQzNjU0OTI0ZTRhMjA4MmQ3OTVhMzM0YjhhNTI4NWEwZWYsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpRME1EZzRORFEwTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0ozWldJaUxDSnNiMk5oYkdodmMzUWlYU3dpY0d4aGJpSTZJak0wSWl3aWMyTnZjR1VpT2xzaWRqY2lMQ0oyT0NJc0luWTVJaXdpZGpFd0lpd2lkakV4SWl3aVkyaGhjblJ6SWl3aVptOXliWE1pTENKbWIzSnRkV3hoSWl3aWNHRnljMlZ5SWl3aWNtVnVaR1Z5SWl3aVkyOXRiV1Z1ZEhNaUxDSnBiWEJ2Y25SbGNpSXNJbUpoY2lJc0luWmhiR2xrWVhScGIyNXpJaXdpYzJWaGNtTm9JaXdpY0hKcGJuUWlMQ0p6YUdWbGRITWlMQ0pqYkdsbGJuUWlMQ0p6WlhKMlpYSWlMQ0p6YUdGd1pYTWlYU3dpWkdWdGJ5STZkSEoxWlgwPQ==');
// Create the spreadsheetlet table = jspreadsheet(document.getElementById('spreadsheet'), {
worksheets: [{
minDimensions: [6,6],
}],
});
document.getElementById("createredbtn").onclick = () => table[0].setBorder(1,1,2,2,'red-visit','#ff0000')
document.getElementById("createbluebtn").onclick = () => table[0].setBorder(3,3,4,4,'blue-visit','#0000ff')
document.getElementById("resetbtn").onclick = () => table[0].resetBorders()
</script></html>
importReact, { useRef } from"react";
import { Spreadsheet, Worksheet } from"@jspreadsheet/react";
const license = 'YmQ0MzEyMjhiOTc3Yzk4MjlhNDgxZmQwZGZmMWI0Y2VlNmEzMmY3NWExNDA1M2RmNGQ3MGI2MDQ0NzI5ZmI4ZDQxNmI1OGMyNDMzZDRhZGYwMzY5MmNkMzgxYjM3YTQzNjU0OTI0ZTRhMjA4MmQ3OTVhMzM0YjhhNTI4NWEwZWYsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpRME1EZzRORFEwTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0ozWldJaUxDSnNiMk5oYkdodmMzUWlYU3dpY0d4aGJpSTZJak0wSWl3aWMyTnZjR1VpT2xzaWRqY2lMQ0oyT0NJc0luWTVJaXdpZGpFd0lpd2lkakV4SWl3aVkyaGhjblJ6SWl3aVptOXliWE1pTENKbWIzSnRkV3hoSWl3aWNHRnljMlZ5SWl3aWNtVnVaR1Z5SWl3aVkyOXRiV1Z1ZEhNaUxDSnBiWEJ2Y25SbGNpSXNJbUpoY2lJc0luWmhiR2xrWVhScGIyNXpJaXdpYzJWaGNtTm9JaXdpY0hKcGJuUWlMQ0p6YUdWbGRITWlMQ0pqYkdsbGJuUWlMQ0p6WlhKMlpYSWlMQ0p6YUdGd1pYTWlYU3dpWkdWdGJ5STZkSEoxWlgwPQ==';
exportdefaultfunctionApp() {
// Spreadsheet array of worksheetsconst spreadsheet = useRef();
// Render componentreturn (
<><Spreadsheetref={spreadsheet}license={license}><WorksheetminDimensions={[6,6]} /></Spreadsheet><buttonvalue="Create new red selection"onClick={() => spreadsheet.current[0].setBorder(1,1,2,2,'test1','#ff0000')} />
<buttonvalue="Create new blue selection"onClick={() => spreadsheet.current[0].setBorder(3,3,4,4,'test2','#0000ff')} />
<buttonvalue="Clear all selection"onClick={() => spreadsheet.current[0].resetBorders()} />
</>
);
}
<template><Spreadsheetref="spreadsheet":license="license"><Worksheet:minDimensions="[6,6]" /></Spreadsheet><inputtype="button" @click="setBorder(1,1,2,2,'test1','#ff0000')"value="Create a new red selection" /><inputtype="button" @click="setBorder(3,3,4,4,'test2','#0000ff')"value="Create a new blue selection" /><inputtype="button" @click="resetBorders"value="Clear all selection" /></template><script>import { Spreadsheet, Worksheet } from"@jspreadsheet/vue";
const license = 'YmQ0MzEyMjhiOTc3Yzk4MjlhNDgxZmQwZGZmMWI0Y2VlNmEzMmY3NWExNDA1M2RmNGQ3MGI2MDQ0NzI5ZmI4ZDQxNmI1OGMyNDMzZDRhZGYwMzY5MmNkMzgxYjM3YTQzNjU0OTI0ZTRhMjA4MmQ3OTVhMzM0YjhhNTI4NWEwZWYsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpRME1EZzRORFEwTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0ozWldJaUxDSnNiMk5oYkdodmMzUWlYU3dpY0d4aGJpSTZJak0wSWl3aWMyTnZjR1VpT2xzaWRqY2lMQ0oyT0NJc0luWTVJaXdpZGpFd0lpd2lkakV4SWl3aVkyaGhjblJ6SWl3aVptOXliWE1pTENKbWIzSnRkV3hoSWl3aWNHRnljMlZ5SWl3aWNtVnVaR1Z5SWl3aVkyOXRiV1Z1ZEhNaUxDSnBiWEJ2Y25SbGNpSXNJbUpoY2lJc0luWmhiR2xrWVhScGIyNXpJaXdpYzJWaGNtTm9JaXdpY0hKcGJuUWlMQ0p6YUdWbGRITWlMQ0pqYkdsbGJuUWlMQ0p6WlhKMlpYSWlMQ0p6YUdGd1pYTWlYU3dpWkdWdGJ5STZkSEoxWlgwPQ==';
exportdefault {
components: {
Spreadsheet,
Worksheet,
},
methods: {
setBorder() {
this.$refs.spreadsheet.current[0].setBorder(...arguments);
},
resetBorders() {
this.$refs.spreadsheet.current[0].resetBorders();
},
},
data() {
return {
// Licenselicense: license,
};
}
}
</script>
import { Component, ViewChild, ElementRef } from"@angular/core";
import jspreadsheet from"jspreadsheet";
import"jspreadsheet/dist/jspreadsheet.css"import"jsuites/dist/jsuites.css"// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('YmQ0MzEyMjhiOTc3Yzk4MjlhNDgxZmQwZGZmMWI0Y2VlNmEzMmY3NWExNDA1M2RmNGQ3MGI2MDQ0NzI5ZmI4ZDQxNmI1OGMyNDMzZDRhZGYwMzY5MmNkMzgxYjM3YTQzNjU0OTI0ZTRhMjA4MmQ3OTVhMzM0YjhhNTI4NWEwZWYsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpRME1EZzRORFEwTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0ozWldJaUxDSnNiMk5oYkdodmMzUWlYU3dpY0d4aGJpSTZJak0wSWl3aWMyTnZjR1VpT2xzaWRqY2lMQ0oyT0NJc0luWTVJaXdpZGpFd0lpd2lkakV4SWl3aVkyaGhjblJ6SWl3aVptOXliWE1pTENKbWIzSnRkV3hoSWl3aWNHRnljMlZ5SWl3aWNtVnVaR1Z5SWl3aVkyOXRiV1Z1ZEhNaUxDSnBiWEJ2Y25SbGNpSXNJbUpoY2lJc0luWmhiR2xrWVhScGIyNXpJaXdpYzJWaGNtTm9JaXdpY0hKcGJuUWlMQ0p6YUdWbGRITWlMQ0pqYkdsbGJuUWlMQ0p6WlhKMlpYSWlMQ0p6YUdGd1pYTWlYU3dpWkdWdGJ5STZkSEoxWlgwPQ==');
@Component({
selector: "app-root",
template: `
<div #spreadsheet></div>
<input type="button"
(click)="this.worksheets[0].setBorder(1,1,2,2,'test1','#ff0000')" value="Create a new red selection" />
<input type="button"
(click)="this.worksheets[0].setBorder(3,3,4,4,'test2','#0000ff')" value="Create a new blue selection" />
<input type="button"
(click)="this.worksheets[0].resetBorders()" value="Clear all selection" />`
})
exportclassAppComponent {
@ViewChild("spreadsheet") spreadsheet: ElementRef;
// Worksheetsworksheets: jspreadsheet.worksheetInstance[];
// Create a new data gridngAfterViewInit() {
// Create spreadsheetthis.worksheets = jspreadsheet(this.spreadsheet.nativeElement, {
worksheets: [
{
minDimensions: [6,6],
}
]
});
}
}