如何将许多数据保存到Excel文件中?

发布于 2025-02-09 04:03:03 字数 1621 浏览 2 评论 0原文

我想根据文本文件的数据将数据保存到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;  
                            
                      }
 
                        
                     }
                  

I would like to save data into Excel file based on data from text file. I tried to put 2 lines in text file. When saving the data in Excel file, I can only save 1 line from text file. I cannot save both lines in excel.

Below is my text file data :

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

output excel file out should be printed out that two lines as well.
my output excel file

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

below is my sample code:

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;  
                            
                      }
 
                        
                     }
                  

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

才能让你更想念 2025-02-16 04:03:04

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

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;

You don't need nested loops. For each line of input, write to the spreadsheet. Close the spreadsheet after the loop.

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;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文