Win32::Scsv - Convert from and to *.xls, *.csv using Win32::OLE
use Win32::Scsv qw( xls_2_csv xls_all_csv csv_2_xls xls_2_vbs slurp_vbs import_vbs_book empty_xls get_xver get_book get_last_row get_last_col tmp_book open_excel get_lang XLRef XLConst ftranslate get_excel set_style_R1C1 restore_style ); my $CN = XLConst(); print 'xlNormal = ', $CN->{'xlNormal'}, "\n"; my ($ver, $product) = get_xver; xls_2_csv('Test1.xls'); xls_2_csv('Test1.xls' => 'dummy.csv'); csv_2_xls('dummy.csv' => 'Test2.xls'); xls_2_vbs('Test1.xls' => 'dummy.vbs'); empty_xls('Test2.xls'); print $_->{'NAME'}, ' => ', $_->{'CODE'}, "\n" for @{slurp_vbs('Test3.xls')}; xls_2_csv('Abc.xls%Tab01' => 'data01.csv', { cpy => 'all' }); # copy values *AND* format... xls_2_csv('Abc.xls%Tab02' => 'data02.csv', { cpy => 'val' }); # copy only values... xls_2_csv('Abc.xls%Tab03' => 'data03.csv'); # ...same as { cpy => 'val' }, which is the default... xls_2_csv('Abc.xls%Tab04' => 'data04.csv', { rmc => 1 }); # remove CRLF from all cells... xls_2_csv('Abc.xls%Tab05' => 'data05.csv', { clc => 1 }); # force recalculation... xls_all_csv('Abc.xls' => 'result_*.csv', { cpy => 'all' }); # copy all sheets in one operation... csv_2_xls('dummy.csv' => 'New.xlsx%Tab9', { 'tpl' => 'Template.xls', 'prot' => 1, 'csz' => [ ['H:H' => 13.71], ['A:D' => 3], ], 'fmt' => [ ['A:A' => '#,##0.000'], ['B:B' => '\\<@\\>'], ['C:C' => 'dd/mm/yyyy hh:mm:ss'], ], }); my $ob = get_book('Test01.xls'); my $os = $ob->Worksheets('Sheet5') or die "Can't find Sheet"; my $last_col = get_last_col($os); # returns zero for an empty sheet... my $last_row = get_last_row($os); # returns zero for an empty sheet... print 'last col = ', $last_col, ', last row = ', $last_row, "\n"; print 'XLRef = ', XLRef($last_col, $last_row), "\n"; $ob->Close; open_excel('C:\Data\Test01.xls');
Klaus Eichner <klaus03@gmail.com>
Copyright (C) 2009-2011 by Klaus Eichner
All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the artistic license 2.0, see http://www.opensource.org/licenses/artistic-license-2.0.php
To install Win32::Scsv, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Win32::Scsv
CPAN shell
perl -MCPAN -e shell install Win32::Scsv
For more information on module installation, please visit the detailed CPAN module installation guide.