- push @labels, $sheet->{Cells}->[0]->[$_]->{_Value}
- foreach ( $sheet->{MinCol} ... $sheet->{MaxCol} )
- ;
- @names = map { s{\W+}{_}; $_ } @labels;
- $log->loginfo("column labels:", @labels, @names);
+
+ my $labels;
+
+ foreach ( $sheet->{MinCol} ... $sheet->{MaxCol} ) {
+ my $label = $sheet->{Cells}->[0]->[$_]->{_Value};
+ last if length($label) == 0;
+ push @labels, $label;
+ }
+ @names = map {
+ my $t = unac_string($_);
+ $t =~ s{[^a-z0-9]+}{_}gi;
+ $t =~ s{_+$}{};
+ $t =~ s{^_+}{};
+ $t = lc($t);
+ $labels .= "$t\t$_\n";
+ $t;
+ } @labels;
+
+ $log->info("columns = ", dump( @names ), " labels = ", dump( @labels ) );
+
+ $ds = {
+ '_labels' => [ @labels ],
+ '_names' => [ @names ],
+ };
+
+ my $path = $self->{labels} || 'var/labels.txt';
+ {
+warn $labels;
+ open(my $fh, '>:raw', $path) || die "$path: $!";
+ print $fh $labels;
+ close $fh;
+ }
+ $log->info("created labels $path ", -s $path, " bytes");