Bonjour,
Je tente de colorer les cellules modifiées par rapport à leur valeur initiale mais sans vrai succès malgré de nombreux essais avec $table->bind, $table->configure(-browsecmd..) et $table->configure(-validatecmd..) .
Le code ci-dessous fonctionne mais il y a surement beaucoup plus propre et simple, et surtout plus efficace que de rebalayer 2 hash :
Merci d'avance si vous pouvez donner une meilleure solution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 $table->configure ( -browsecmd => sub { my ( $previous_index, $current_index ) = @_; my $new_value = $table->get($current_index) ; my $previous_value = $table->get($previous_index) ; # Check if we did select a cell and not an entire row or a column if ( $previous_index =~ m{^\d+,\d+$} ) { # Store the updated cell into hash for later needs $spreadsheet_current->{$current_index} = $new_value ; # Highlight all changes while ( my ($k,$v) = each(%$spreadsheet_initial) ) { $table->tagCell('modified', "$k" ) if ($spreadsheet_current->{$k} ne $spreadsheet_initial->{$k}); } } }, );
Partager