Perl中的电子表格::ParseExcel模块有问题吗?

Perl中的电子表格::ParseExcel模块有问题吗?,perl,perl-module,Perl,Perl Module,我是perl新手,刚刚开始使用模块Spreadsheet::ParseExcel。 我不想在我正在使用的Excel工作表中写入任何内容。 脚本基本上应该在Excel工作表中运行,并逐行打印值。 我有大约250行和3列。 因此,输出必须类似于: Glendale Academy Mark 40% Glendale Academy Tom 60% ..... ..... ..... 在终点站 我使用这个窗口(我应该考虑 Win32::OLE )和 Win32

我是perl新手,刚刚开始使用模块Spreadsheet::ParseExcel。 我不想在我正在使用的Excel工作表中写入任何内容。 脚本基本上应该在Excel工作表中运行,并逐行打印值。 我有大约250行和3列。 因此,输出必须类似于:

   Glendale Academy  Mark  40%
   Glendale Academy  Tom   60%
   .....
   .....
   .....
在终点站

我使用这个窗口(我应该考虑<代码> Win32::OLE )和<代码> Win32::OLE::const“微软Excel”< />代码(应该是表格的格式?.xLS,.xLSx,.cv) 以下是我迄今为止所做的工作: 在浏览了这个网站上的很多脚本之后,我认为使用“拆分”是最简单的。这非常简单,因为它是excel,我不知道如何使用它

到目前为止,我的剧本是这样的

use strict;
use warnings;
use Spreadsheet::ParseExcel;

my $reader   = Excel::Write::XLSX->new();  # I am sure something is wrong here
my $workbook  = Spreadsheet::WriteExcel->new('Draft.xls');
#my $workbook = $reader->read_file( 'Draft.xlsx' );

if ( !defined $workbook ) {
    die $reader->error(), "\n";
}

for my $worksheet ( $workbook->worksheets() ) {
    my $sheetname = $worksheet->name();
    print "Sheet = $sheetname\n";
    while ( my $row = $worksheet->next_row() ) {
        while ( my $cell = $row->next_cell() ) {
            my $row   = $cell->row();
            my $col   = $cell->col();
            my $value = $cell->value();
            print "  Cell ($row, $col) = $value\n";
        }
    }
}
任何形式的帮助都将受到极大的感谢;
已经坚持了一个星期了……

在最初的计划中有一些错误:

  • 该程序正在使用
    Excel::Write::XLSX
    ,其中包含打字错误,未导入,与电子表格::解析Excel或读取数据无关
  • 然后,程序使用未导入且与电子表格::解析Excel或读取数据无关的
    电子表格::WriteExcel
  • 然后程序似乎使用Excel::Reader::XLSX接口(
    next\u row
    next\u cell
  • 如果要从Excel XLS文件中读取数据,只需使用文档中的界面和示例程序:

    当对上面显示的示例电子表格运行时,会得出:

    Row, Col    = (0, 0)
    Value       = Glendale Academy
    Unformatted = Glendale Academy
    
    Row, Col    = (0, 1)
    Value       = Mark
    Unformatted = Mark
    
    Row, Col    = (0, 2)
    Value       = 40%
    Unformatted = 0.4
    
    Row, Col    = (1, 0)
    Value       = Glendale Academy
    Unformatted = Glendale Academy
    
    Row, Col    = (1, 1)
    Value       = Tom
    Unformatted = Tom
    
    Row, Col    = (1, 2)
    Value       = 60%
    Unformatted = 0.6
    

    但是,我如何将输出格式化为流线型,就像我希望所有单元格值都打印在一行中一样。像Glendale Academy Mark 40%一样,我需要指定行和列范围吗?或者有没有一种有效的方法来实现这一点!!!John,你能告诉我如何将最后一列值与阈值(例如35%)进行比较吗该栏中的值,比如Mark有40%,Tom有60%,Jenny有70%,我想将其与35%的阈值进行比较,并给出他们是通过还是失败的判断?有什么想法吗。。。。
    Row, Col    = (0, 0)
    Value       = Glendale Academy
    Unformatted = Glendale Academy
    
    Row, Col    = (0, 1)
    Value       = Mark
    Unformatted = Mark
    
    Row, Col    = (0, 2)
    Value       = 40%
    Unformatted = 0.4
    
    Row, Col    = (1, 0)
    Value       = Glendale Academy
    Unformatted = Glendale Academy
    
    Row, Col    = (1, 1)
    Value       = Tom
    Unformatted = Tom
    
    Row, Col    = (1, 2)
    Value       = 60%
    Unformatted = 0.6