Each cell has two display modes:
- View mode: Uses
valueRenderer to show data to the user. - Edit mode: Uses
dataRenderer to provide the value for the input field. dataRenderer must return a string.
Both callbacks receive (cell, row, col) as arguments, allowing for coordinate-based formatting (e.g., formatting a specific column as a date).
const grid = [
[{value: 5, expr: '1 + 4'}, {value: 6, expr: '6'}, {value: new Date('2008-04-10')}],
[{value: 5, expr: '1 + 4'}, {value: 5, expr: '1 + 4'}, {value: new Date('2004-05-28')}]
]
const onCellsChanged = (changes) => changes.forEach(({cell, row, col, value}) => console.log("New expression :" + value))
<ReactDataSheet
data={grid}
valueRenderer={(cell, i, j) => j == 2 ? cell.value.toDateString() : cell.value}
dataRenderer={(cell, i, j) => j == 2 ? cell.value.toISOString() : cell.expr}
onCellsChanged={onCellsChanged}
/>