簡體   English   中英

在Perl中編寫Excel電子表格

[英]Writing Excel Spreadsheet in Perl

我正在從Perl腳本編寫Excel電子表格,如果不存在數據,則需要將特定行的行高設置為“ 0”。 這是我到目前為止寫的一些內容。 它可以基於文本文件寫入數據,但是如果該項目不在文本文件中,那么它將留下一個空行,我想消除該行。 任何幫助表示贊賞。

my $file = 'forecast.txt';
open my $fh, '<', $file or die "Could not open '$file' $!\n";

while (my $line =<$fh>) {
  if (index($line, 'M1501235') != -1) {

  $worksheet->write(11,0, "M1501", $print2);
  $worksheet->write(11,1, "FUND TO FUND TRANSFERS", $print);
  $worksheet->write(11,2, "DES", $print);
  $worksheet->write(11,3, "0001", $print);
  $worksheet->write(11,4, "", $print);
  $worksheet->write(11,5, "NA", $print);
  $worksheet->write(11,6, "SEE RH", $print);
  }
#  else $worksheet->set_row (11, 0);
  if (index($line, 'M2201235') != -1) {
  $worksheet->write(12,0, "M2201", $print2);
  $worksheet->write(12,1, "BPS FUND BALANCE ERROR RPT", $print);
  $worksheet->write(12,2, "L&I", $print);
  $worksheet->write(12,3, "0010", $print);
  $worksheet->write(12,4, "", $print);
  $worksheet->write(12,5, "NA", $print);
  $worksheet->write(12,6, "2 COPIES 37", $print);
  }
  else $worksheet->set_row ($_, 0) for (0..11);

elsif (index($line, 'M2301235') != -1) {
  $worksheet->write(13,0, "M2201", $print2);
  $worksheet->write(13,1, "BPS/ARC RECOCILIATION RPT/BPS CREDIT BALANCE RPT", $print);
  $worksheet->write(13,2, "L&I", $print);
  $worksheet->write(13,3, "0010", $print);
  $worksheet->write(13,4, "", $print);
  $worksheet->write(13,5, "NA", $print);
  $worksheet->write(13,6, "2 COPIES 37", $print);
  }
}

最好將行設置為隱藏而不是0。

set_row具有以下參數:

set_row( $row, $height, $format, $hidden, $level, $collapsed )

第四個參數是切換行可見性的標志。 您不想顯式設置的任何參數都可以作為undef傳入

這意味着,您可以更改

$worksheet->set_row ($_, 0) for (0..11);

$worksheet->set_row ($_, undef,undef,1) for (0..11);

set_row適用於Excel::Writer::XLSXSpreadsheet::WriteExcel

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM