Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

Re^2: serial number generator

by royserna03 (Initiate)
on Oct 03, 2012 at 20:31 UTC ( #997128=note: print w/replies, xml ) Need Help??

in reply to Re: serial number generator
in thread serial number generator

Thank You so much! that was a really big help, I really appreciate the help! I just have a few more questions if that's ok. How can I store the last number create, so that after the usr closes the program it picks it right back from where it ended. Ex. last number is ITS0012, usr closes and opens again and the first number that the usr gets is ITS0013. Also how can I have two spread sheets, one with the recently made numbers and another one with all the numbers that have been created? Again I want to thank you for such a fast and awesome response! I was so stuck, I really appreciate the support!

Replies are listed 'Best First'.
Re^3: serial number generator
by Athanasius (Chancellor) on Oct 04, 2012 at 02:59 UTC

    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

      This code is so great! Thank You! I just get an error when I try to run it. It says "Spreadsheet 'master.xlsx' not found: no such file or directory at line 8. I tried looking for an error but I could not find anything. Do you know why it is doing this? Again Thank You so much! you have helped a lot!

        This code is so great!

        How do you know?

        It says "Spreadsheet 'master.xlsx' not found: no such file or directory at

        Do you have a file master.xlsx?

      I created it the file, and it worked! thank you so much for your help. I really appreciate the time you put into it! Thank You so much!

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://997128]
[1nickt]: That's why I asked if you are using DateTime. It has a large number of supporting modules (the author likes the term 'eco-system') so if you are already creating a DateTime obj from your dates, this module would read in the mnoron-formatted 1s seamlessly
[TCLion]: when I put the date together it looks like : 2017-Feb-24 (month is the problem)
[1nickt]: good luck, then.
[TCLion]: looking at DateTime documentation in monastery now

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (11)
As of 2017-03-23 15:00 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (288 votes). Check out past polls.