From 0465d36acc48f9ecd0604ed23fce8b2ba2e4343b Mon Sep 17 00:00:00 2001 From: dakkar Date: Sun, 23 Oct 2011 13:06:04 +0100 Subject: spostiamo roba --- excel_to_incantesimi.pl | 134 ------------------------------------------------ 1 file changed, 134 deletions(-) delete mode 100644 excel_to_incantesimi.pl (limited to 'excel_to_incantesimi.pl') diff --git a/excel_to_incantesimi.pl b/excel_to_incantesimi.pl deleted file mode 100644 index e2d1899..0000000 --- a/excel_to_incantesimi.pl +++ /dev/null @@ -1,134 +0,0 @@ -#!/usr/bin/perl -use strict; -use warnings; -use Spreadsheet::ParseExcel; -use LaTeX::Encode; -use Template; -use Data::Printer; - -# excel => latex -my %fieldmap = ( - spellname => 'name', - level => 'level', - school => 'scuola', - comp => 'components', - ct => 'tempo', - range => 'range', - target => 'target', - duration => 'durata', - st => 'st', - sr => 'sr', - spell => 'descrizione', - special => 'specialcomp', - page => 'ref', - notes => 'note', -); - -my ($input_filename,$output_filename)=@ARGV; - -die "$0 \$input \$output\n" - unless $input_filename && $output_filename; - -my $parser = Spreadsheet::ParseExcel->new(); -my $wb = $parser->parse($input_filename) - or die $parser->error; - -my $spells = parse_table($wb->worksheet('Incantesimi') - // $wb->worksheet(0)); - -munge($spells); -p $spells; -my $template = Template->new(); -$template->process( - \*DATA, - { - spells => $spells, - fieldmap => \%fieldmap, - lt => \&latexise, - }, - $output_filename, -) - or die $template->error; - -sub parse_table { - my ($ws) = @_; - - my ($min_col,$max_col) = $ws->col_range(); - my ($min_row,$max_row) = $ws->row_range(); - my @headings = map { eval { $ws->get_cell($min_row,$_)->value } } - $min_col .. $max_col; - - for my $h (@headings) { - $h =~ s{\W.*$}{}; - $h = lc($h); - } - - my @ret = (); - - for my $row ((1+$min_row) .. $max_row) { - # allow and skip empty rows - next unless eval { $ws->get_cell($row,$min_col)->value }; - my %record; - - keys @headings; - while (my ($idx,$heading) = each @headings) { - # allow and skip empty cols - next unless $heading; - $record{$heading} = - eval { $ws->get_cell($row,$idx+$min_col)->value } // ''; - } - push @ret,\%record; - } - return \@ret; -} - -sub munge { - my ($spells) = @_; - - for my $spell (@$spells) { - if ($spell->{page} =~ m{^\d+$}) { - $spell->{page} = 'PHB'.$spell->{page}; - } - } - return; -} - -sub latexise { - my ($str) = @_; - - $str = latex_encode($str); - $str =~ s{(?