Dans Google Sheets, j'ai un add-on qui se compose de deux parties : le back-end code.gs
et front-end index.html
où l'index.html est une barre latérale affichée lors d'un clic dans le menu. Voici code.gs
:
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('My add-on')
.addItem('Test', 'openSideBar')
.addToUi();
}
function onSelectionChange(e) {
Logger.log("Selection changed ");
}
function openSideBar() {
var html = HtmlService.createHtmlOutputFromFile('Index');
SpreadsheetApp.getUi().showSidebar(html);
}
function getCurrentSelection() {
var currentCell = SpreadsheetApp.getCurrentCell();
return { column: currentCell.getColumn(), row: currentCell.getRow() };
}
Voici la documentation pour onSelectionChange . Le site Logger.log("Selection changed")
est en effet appelé lorsque la sélection est modifiée. Mais, j'ai besoin de notifier ou de faire un changement dans le côté frontal lorsque l'utilisateur clique sur une cellule et change la sélection.
Voici le index.html
:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
Test
<input type="text" id="formula" />
<script>
function onSelectionChangeJs(e) {
document.getElementById("formula").value = e ;
}
function loadCell() {
google.script.run.withSuccessHandler(onSelectionChangeJs).getCurrentSelection();
}
</script>
<button onclick="loadCell()">Get cell</button>
</body>
</html>
Alors qu'actuellement je vérifie la sélection actuelle lors d'un clic sur un bouton, j'ai besoin de onSelectionChangeJs
pour être appelé automatiquement lorsqu'une sélection est modifiée dans la feuille.
Je pense qu'il s'agit d'un besoin commun pour le développement d'un add-on. Alors, quelqu'un sait-il comment laisser onSelectionChange
de code.gs
informer onSelectionChangeJs
de index.html
?