perl - 如何将大量数据保存到Excel文件中?

标签 perl

我想根据文本文件中的数据将数据保存到 Excel 文件中。我尝试在文本文件中放入 2 行。将数据保存在 Excel 文件中时,我只能保存文本文件中的 1 行。我无法在 Excel 中保存这两行。

下面是我的文本文件数据:

1957041.0F1,9850-LOGOUT PROBE,B27A,Waiting,12
4511533.021,9050-OFFLOAD SEND,B18A,24,Waiting,12

输出excel文件也应该打印出这两行。 我的输出 Excel 文件

1957041.0F1,9850-LOGOUT PROBE,B27A,Waiting,12

下面是我的示例代码:

use strict;  
use Excel::Writer::XLSX;  

my $workbook= Excel::Writer::XLSX->new( 'C:/Users/pphyuphway/Downloads/myExcel.xlsx' );  
 
my $worksheet = $workbook->add_worksheet(); 


my $file =  "C:/Users/pphyuphway/Downloads/lot.txt";
my $file1 =  "C:/Users/pphyuphway/Downloads/test321.txt";

open( my $fh4, "<", $file) or die "Could not open file '$file' $!";
my @check;
my $count = 0;
foreach my $check (<$fh4>) {
   my ($lot,$step,$designID,$status,$duration)  = split(/\,/,$check);

                    $count = $.;
                    print($count);
                    for(my $i = 1; $i<= $count ; $i++)
                      {
                            $worksheet->write( "A$i", "$lot");
                            $worksheet->write( "B$i", "$designID");
                            $worksheet->write( "C$i", "$step");
                            $worksheet->write( "D$i", "$duration");
                            $worksheet->write( "E$i", "$status");
                            $worksheet->write( "F$i", "Error");
                            $workbook->close;  
                            
                      }
 
                        
                     }
                  

最佳答案

您不需要嵌套循环。对于每一行输入,写入电子表格。循环后关闭电子表格。

use warnings;
use strict;
use Excel::Writer::XLSX;

my $workbook= Excel::Writer::XLSX->new( 'C:/Users/pphyuphway/Downloads/myExcel.xlsx' );
my $worksheet = $workbook->add_worksheet();

my $file = "C:/Users/pphyuphway/Downloads/lot.txt";
open( my $fh4, "<", $file) or die "Could not open file '$file' $!";

my $i = 1;
foreach my $check (<$fh4>) {
    my ($lot,$step,$designID,$status,$duration) = split(/,/, $check);
    $worksheet->write( "A$i", $lot);
    $worksheet->write( "B$i", $designID);
    $worksheet->write( "C$i", $step);
    $worksheet->write( "D$i", $duration);
    $worksheet->write( "E$i", $status);
    $worksheet->write( "F$i", "Error");
    $i++;
}
$workbook->close;

关于perl - 如何将大量数据保存到Excel文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72701571/

相关文章:

perl - 如何在 Perl 中引用打印?

linux - 从 CGI 脚本重启服务

perl - List::Util 'shuffle' 实际上是如何工作的?

perl - 使用 Perl 和 GtkBuilder 连接信号

xml - 如何为元素插入祖先

perl - 如何处理Moose中的可选参数?

perl - Perl的 map 有什么意义?

windows - 草莓 Perl : forgets environment variables?

perl - 如何循环遍历 Perl 中类的所有方法?

Perl 默认变量 $_