use Spreadsheet::ParseExcel; use Spreadsheet::ParseExcel::SaveParser; #### #!/usr/bin/perl # # use strict; use warnings; use Spreadsheet::ParseXLSX; use Spreadsheet::ParseExcel; use Spreadsheet::ParseExcel::SaveParser; use Spreadsheet::ParseExcel::Workbook; use DBI; use POSIX qw(strftime); my $database = "ravi"; my $host = "XXX.XX.X.XXX"; my $username = "root"; my $table = "CDR"; my $dbh = DBI->connect("DBI:mysql:database=$database;host=$host;mysql_socket=/opt/lampstack-5.5.27-0/mysql/tmp/mysql.sock","root","", {'RaiseError' => 1}); my $date=$ARGV[0]; $date or $date=`date --date='1 day ago' +%Y%m%d`; chomp $date; my $parser = Spreadsheet::ParseXLSX->new; my $template = $parser->parse("CDR.xlsx"); my $sth = $dbh->prepare("SELECT * from $table where Date='$date'"); $sth->execute() or die $DBI::errstr; my $sheet = $template->worksheet(2); my $row = 1; while (my @row = $sth->fetchrow_array()) { my $col=1; foreach my $value (@row) { $sheet->AddCell( $row, $col, $value ); ++$col; } $row++; } $template->SaveAs("CDR.xlsx"); print "Success";