2015-04-22 25 views
0

我有一个Perl CGI脚本,它显示网页上数据库查询的结果(50行)。如何在使用perl cgi脚本创建的网页上单击链接时打开excel中的结果

在每一行的末尾,我有一列是HTML href链接。

点击此链接时,我必须在Excel中打开该特定记录并允许它被保存。

我试过使用SpreadSheet::WriteExcel,但没有运气。

任何人都可以请给我一个帮助链接或帮助线程关于此?

代码:

while(my $row = $query->fetchrow_hashref){ 
    $html .= "<tr>"; 
    $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap>$row->{promoter}</td>"; 
    $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap>$row->{company}</td>"; 
    $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap>$row->{bunit}</td>"; 
    $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap>$row->{sub}</td>"; 
    $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap>$row->{region}</td>"; 
    $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap>$row->{workstream}</td>"; 
    $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap>$row->{contractor}</td>"; 
    $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap>$row->{amp}</td>"; 
    ### Link to open this record in excel sheet ## 
} 
+1

你有什么已经尝试过?您所展示的只是HTML表格的示例,而不是您尝试生成/下载excel文件的代码。 基本流程是 1:收集数据 2:生成excel文件 3:发送标题为Excel文件 4:发送Excel中的内容文件 –

+0

我不知道从哪里开始。间接地,你问我首先问的问题。 – Mahesh

+0

如何在处理新事物时提出具体问题。 我所问的是任何类似的线程或任何链接,将有所帮助。 无论如何,我设法做到了。稍后会在这里发布答案。 – Mahesh

回答

0

在主脚本,创建其重定向到您准确定义需要的东西在Excel中写入新的脚本锚标记的链接。

创建了一个新脚本,其中定义了下面的子例程。

当链接被点击时,它会询问Excel文档的下载/保存选项。

码:1

      $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap>$row->{workstream}</td>"; 
          $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap>$row->{contractor}</td>"; 
          $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap>$row->{amp}</td>"; 
          $html .= "<td style='border-bottom:1px solid #CCCCCC'><a href='notC.cgi?promoter=$row->{promoter}' target='_blank'>Link</a></td>"; 
          $html .= "<td style='border-bottom:1px solid #CCCCCC'><a href='escC.cgi?promoter=$row->{promoter}' target='_blank'>Link</a></td>"; 

代码:2

sub doExcel { 

print "Content-type: excel/ms-excel; name=notC.xls\n"; 
print "Content-disposition: attachment; filename=notC.xls\n\n"; 
binmode(STDOUT); 

    my $dbh = Kearynet::Database->Handle(); 
    my $query = $dbh->prepare("SELECT * FROM projects.notNames where notPromoter = '$notPromoter' "); 
    $query->execute(); 

    while($row = $query->fetchrow_hashref){ 
      $searchresults{ $row->{notId} } = $row; 
    } 

    my $fname="notContacts_".$notPromoter.".xls"; 

    print "Content-type: excel/ms-excel; name=$fname\n"; 
    print "Content-disposition: attachment; filename=$fname\n\n"; 
    binmode(STDOUT); 

    my $x=0; 
    my $workbook = Spreadsheet::WriteExcel->new(\*STDOUT); 
    my $worksheet = $workbook->add_worksheet("NotificationContacts"); 
    $worksheet->activate(); 
    $worksheet->write($x, 0, "Not RouteId"); 
    $worksheet->write($x, 1, "Not Promoter"); 
    $worksheet->write($x, 2, "Not Level"); 
    ..... 
      foreach my $r (sort keys %searchresults){ 
      my $nrow = $searchresults{$r}; 
      if(not $row->{notId}){ 
        $worksheet->write($x, 0, $nrow->{notRouteId}); 
        $worksheet->write($x, 1, $nrow->{notPromoter}); 
        $worksheet->write($x, 2, $nrow->{notLevel}); 
        $worksheet->write($x, 3, $nrow->{notRegion}); 
        $worksheet->write($x, 4, $nrow->{nTWRConId_1}); 
        $worksheet->write($x, 5, $nrow->{nTWRConName_1}); 
      } 
     } 

    } 
相关问题