$username,$password); my $sth = $dbh->prepare("$ARGV[1]") || die $dbh->errstr; my $rows = $sth->execute() or die $sth->errstr;
warn "rows: $rows found.\n";
my @cols_name = @{$sth->{''NAME''}}; if ($#cols_name > $#cols) { print "table $ARGV[1] fields out of allow!!(max num. > ".($#cols+1).")\n"; exit; }
warn "write to: $ARGV[0]\n";
#生成GB2312编码系统 my $map = Unicode::Map->new("gb2312"); #产生报表 my $report = Spreadsheet::WriteExcel::Big->new("$ARGV[0]") || die "不能生成报表文件:$!"; #创建报表的工作表 my $sheet = $report->add_worksheet(''data_report''); #创建格式 my $title_style = $report->add_format(); $title_style->set_size(11); $title_style->set_bold(); $title_style->set_align(''center''); #初始化数据指针 my $sheet_col = 0;
#创建表格 for (my $i=0;$i<=$#cols_name ;$i++) { $sheet->set_column($cols[$i], length($cols_name[$i])+4); $sheet->write_unicode($sheet_col,$i,$map->to_unicode($cols_name[$i]),$title_style); } $sheet->freeze_panes(1, 0);#冻结行
while (my @row = $sth->fetchrow_array) { $sheet_col++; for (my $i=0;$i<=$#cols_name ;$i++) { next if ($row[$i] eq ''''); $sheet->write_unicode($sheet_col,$i,$map->to_unicode($row[$i])); } }
warn "all done!!!\n";
#结束 END { $report->close() if ($report); $dbh->disconnect(); } |