Posted 14 July 2022, 9:30 am EST
Work in progress, but this is what I have so far
onEditorStatusChanged: function (event, args) {
let copyCellValues = (selections, activeRowIndex, activeColumnIndex) => {
let activeCellValue = workbook.getActiveSheet().getCell(activeRowIndex, activeColumnIndex).value();
workbook.suspendPaint();
workbook.suspendEvent();
selections.forEach((selection) => {
let valuesArray = Array.from({ length: selection.rowCount }).fill(Array.from({ length: selection.colCount }).fill(activeCellValue));
console.log(selection.row, selection.col, valuesArray);
workbook.getActiveSheet().setArray(selection.row, selection.col, valuesArray, false);
});
workbook.resumeEvent();
workbook.resumePaint();
};
if (args.newStatus == GC.Spread.Sheets.EditorStatus.enter || GC.Spread.Sheets.EditorStatus.edit) {
let editor = workbook.getHost().querySelector('[gcuielement="gcEditingInput"]');
if (editor) {
let selections = workbook.getActiveSheet().getSelections();
let activeRowIndex = workbook.getActiveSheet().getActiveRowIndex();
let activeColumnIndex = workbook.getActiveSheet().getActiveColumnIndex();
editor.addEventListener('keydown', function (e) {
if (e.keyCode == 13 && e.ctrlKey) {
e.preventDefault();
var kb = new KeyboardEvent('keydown', {
ctrlKey: false,
keyCode: 13
});
editor.dispatchEvent(kb);
copyCellValues(selections, activeRowIndex, activeColumnIndex);
}
}, true);
}
}
}