in reply to Re^2: serial number generator
in thread serial number generator
I think this will do what you want:
#!/usr/bin/perl use strict; use warnings; use Excel::Writer::XLSX; use Spreadsheet::XLSX; my $master = 'master.xlsx'; -f $master or die "Spreadsheet '$master' not found: $!"; my $excel = Spreadsheet::XLSX->new($master) or die "Cannot open spreadsheet '$master' for reading: $!"; my $sheet = $excel->{Worksheet}[0]; my $last_old_id = $sheet->{Cells}[ $sheet->{MaxRow} ][0]{Val} // 'IT +S0000'; $last_old_id =~ /(\d+)/; my $first_new_id = $1 + 1; print "How many Serial Numbers do you need?\n"; my $mal = <STDIN>; my $comp = 'ITS'; my @array; for my $number (1 .. ($first_new_id + $mal - 1)) { my $exp = $comp . sprintf("%04d", $number); push @array, $exp; } my $simple = 'simple.xlsx'; my $workbook = Excel::Writer::XLSX->new($simple) or die "Cannot open spreadsheet '$simple' for writing: $!"; my $worksheet = $workbook->add_worksheet(); my @array2 = @array[($first_new_id - 1) .. ($first_new_id + $ma +l - 2)]; $worksheet->write_col(0, 0, \@array2); $workbook = Excel::Writer::XLSX->new($master) or die "Cannot open spreadsheet '$master' for writing: $!"; $worksheet = $workbook->add_worksheet(); $worksheet->write_col(0, 0, \@array);
The full set of IDs is stored in the first column of master.xlsx. The new IDs are (over-)written into the file simple.xlsx, as before.
Hope that helps,
Update: As Anonymous Monk implies below, you have to create an Excel file called master.xlsx first (using Excel), before you run the code. The file should initially be empty.
Athanasius <°(((>< contra mundum
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: serial number generator
by royserna03 (Initiate) on Oct 04, 2012 at 03:51 UTC | |
by Anonymous Monk on Oct 04, 2012 at 04:21 UTC | |
|
Re^4: serial number generator
by royserna03 (Initiate) on Oct 04, 2012 at 23:30 UTC |