Revision history for Win32-Scsv

0.01    11 Feb 2012
        First version, released on an unsuspecting world.

0.02    05 Apr 2013
        Add a function convxls to import a csv file into an existing xls file

0.03    06 Apr 2013
        - rename convcsv()  into xls_2_csv()
        - rename convxls()  into csv_2_xls()
        - rename emptyxls() into empty_xls()
        - allow csv_2_xls() without template, also allow more formatting of columns

0.04    08 Apr 2013
        replace use Win32::OLE::Const 'Microsoft Excel'; by hardcoded constants
        to resolve problems where the constant "xlExcel8" wouldn't compile for Excel 2000
        add function get_xver()

0.05    09 Apr 2013
        Share a global instance of Win32::OLE->GetActiveObject('Excel.Application')

0.06    10 Apr 2013
        add an option { 'prot' => 1 } to protect the sheet *after* it has been
        written to

0.07    20 Apr 2013
        add a new function xls_2_vbs() to extract macros from an xls file

0.08    21 Aug 2013
        In subroutine csv_2_xls():
        Replace the one old line "$xls_sheet->Range('A1')->Select;"
        by several, multiple new lines:

          $ole_excel->ActiveWindow->{ScrollColumn} = 1;
          $ole_excel->ActiveWindow->{ScrollRow}    = 1;
          my $pos_row = $ole_excel->ActiveWindow->{ScrollRow};
          my $pos_col = $ole_excel->ActiveWindow->{ScrollColumn};
          $xls_sheet->Cells($pos_row, $pos_col)->Select;

0.09    21 Oct 2013
        use Win32::OLE::Const 'Microsoft Excel';
        Add subroutines: open_xls_book(), open_xls_sheet(), get_lat_row(), get_last_col()

0.10    22 Oct 2013
        Refactor open_xls_book(), open_xls_sheet():
        my $ob = get_book('Test01.xls');
        my $os = $ob->Worksheets('Sheet5') or die "Can't find Sheet";
        $ob->Close;

0.11    12 Jan 2014
        refactor sub slurp_vbs()
        new sub import_vbs_book()
        new sub tmp_book()
        new sub save_pdf()
