Tag: perl

Perl Spreadsheet :: ParseExcel无法parsing并返回undef

刚刚安装了Spreadsheet::ParseExcel模块,但遇到了问题。 看到一些相关的问题,但不完全相同。 #!/usr/bin/perl -w use strict; use warnings; use Spreadsheet::ParseExcel; use Data::Dumper; my $bill = $ARGV[0] || die "Usage: $0 bill.xlsx\n"; my $parser = Spreadsheet::ParseExcel->new(); my $workbook = $parser->parse('Book2.xlsx'); print Dumper $workbook; for my $worksheet ( $workbook->worksheet() ) { } 当我运行perl脚本时,出现以下错误: Can't call method "worksheet" on an undefined value at read.bill.xlsx.pl line 15. 所以我甩了$workbook ,并得到: […]

将.XLSX电子表格转换为CSV的代码不能按预期工作

我有一个Excel电子表格,包含许多列和行。 我想把它变成一个CSV,但只包含CSV中的某些列。 这是我的代码: #!/usr/bin/perl use strict; use warnings; use Spreadsheet::ParseXLSX; use Excel::Writer::XLSX; my $excel = Spreadsheet::ParseXLSX -> new(); my $workbook = $excel->parse('headers.xlsx'); my $worksheet = $workbook->worksheet(0); my $destination = 'csv.txt'; my $csv; my ($row_min, $row_max) = $worksheet->row_range(); my ($col_min, $col_max) = $worksheet->col_range(); for my $row ( $row_min .. $row_max ) { for my $col ( […]

Perl循环输出到Excel电子表格

我有一个Perl脚本,其相关位在下面发布。 # Pull values from cells ROW: for my $row ( $row_min + 1 .. $row_max ) { my $target_cell = $worksheet->get_cell( $row, $target_col); my $response_cell = $worksheet->get_cell( $row, $response_col); if ( defined $target_cell && defined $response_cell ) { my $target = $target_cell->value(); my $response = $response_cell->value(); # Determine relatedness my $value = $lesk->getRelatedness($target, $response); […]

在Perl中,我可以在Excel工作表中创build数据而不是文本文件。 并使用字符“|”作为分隔符

在Perl中,我可以在Excel工作表中创build数据而不是文本文件。 并使用字符“|” 作为分隔符。 我正在使用下面的代码来创build一个文本文件 for(my $j = 0; $j < $num2; $j++) { print {$out} $destination[$j]|$IP_one_1[$j]|$IP_one_2[$j]|$IP_one_3[$j]|$IP_one_4[$j]|$reached[$j]|$IP_two_1[$j]|$IP_two_2[$j]|$IP_two_3[$j]|$IP_two_4[$j]\n"; 在Perl中,我可以在Excel工作表中创build数据而不是文本文件。 并使用字符“|” 作为分隔符,expression式{$out}由我之前定义的文件名组成,它读作为open my $out,'>', "$file.rec" or die $!; 干杯,

我的退出条件有什么问题

我有一个脚本parsing一个XLSX文件,并将其转换为其他格式。 在XLSX文件是红色的部分,我有一个退出条件: do { … … … } until (uc(trim($worksheet -> get_cell($indexRow, 0) -> value())) eq ""); 不幸的是,当我执行脚本时,我收到这个错误: 无法在myfilename.pl第94行的未定义值上调用方法“值” 任何人都可以给我一个提示或解释什么我做错了,请吗? 顺便说一句,我是一个Perl编程的初学者。

为什么我会收到错误

在我的代码中,我有一个函数来validation工作表中的单元格是否包含有效值,意思是:1.它包含一些东西。 2.包含的值不是SPACE,TAB或ENTER。 当我只是检查打印的function(打印单个单元格函数返回的值),显然,一切工作正常。 当我将“结果打印”集成到while循环中时,为了检查单元格范围,它收到错误消息: Can't call method "value" on an undefined value at D:\test.pl 这里是我的代码: use strict; use Spreadsheet::ParseXLSX; my $parser = Spreadsheet::ParseXLSX->new(); sub check_cell($) { my ( $worksheet, $a, $b ) = @_; if ( $worksheet->get_cell( $a, $b ) or not ord( $worksheet->get_cell( $a, $b )->value() ) ~~ [ 32, 9, 10 ] ) […]

使用Spreadsheet :: ParseXLSX删除整个行

一般来说,我是电子表格parsing器的新手,除了主要function的基本介绍外,在CPAN上找不到更多的信息。 我试图读取一个.xlsx文件,并删除整个行,如果column 2存在一个散列,我过滤。 然后我想用.xlxs打印出一个编辑好的文件 这是我可以从CPANfindSpreadsheet::ParseExcel use strict; use warnings; use Spreadsheet::ParseXLSX; my $parser = Spreadsheet::ParseXLSX->new; my $workbook = $parser->parse("file.xlsx"); for my $worksheet ( $workbook->worksheets() ) { my ( $row_min, $row_max ) = $worksheet->row_range(); my ( $col_min, $col_max ) = $worksheet->col_range(); for my $row ( $row_min .. $row_max ) { # Here I want to delete […]

Perl – 使用文本和数字在字段中删除前导零

我正在parsing一个大的.CSV文件,并且由于Excel和微软的无穷帮助而遇到了问题 – 在Excel中打开了.CSV文件以清除很多问题,但是现在我已经已经添加了前导零的字段。 Excel不起作用(至less我发现),因为这个特定的字段是ProductNumber,可以有任何字母和数字的组合。 问题出现了,因为一些产品号码以点开头,即 – .12345678。 有时网点稍后会出现 – 12.345678,有时不会有点 – 123456789,有时还会混合字母和/或字母和数字 – ABCDEFGHI或A12D34G56。 在任何情况下,该字段都必须是9个字符或更less。 但Excel通过一个“有用”的前导零为任何ProductNumber开始一个点(十进制) – 所以我有0.12345678,把它变成一个10个字符的ProductNumber。 我需要修剪前导零 – 只有在字段以“0”开始的情况下。 有很多产品编号以“10.”,“20”开头。 等不想碰那些。 那么,有没有办法让我用标量variables来做这件事? 所以,说我的文件 0.12345678 10.123456 A12B34C56 ABCDEFGHI 我有这样的开始 – my $filename = 'test.csv'; open my $FH, $filename or die "Could not read from $filename <$!>, program halting."; # Read the header line. chomp(my […]

如何使用Perl中的Excel表格提取正则expression式的数据

如何在工作簿中使用正则expression式提取数据。 例如,我想提取一组匹配工作簿中包含许多工作表的模式的string。

使用PerlparsingSpreadsheetML

使用PerlparsingSpreadsheetML格式文件的最佳方法是什么? 我试过Spreadsheet :: ParseExcel,但是它不能识别格式。 这是我尝试模块时得到的错误: No Excel data found in file 它看起来像CPAN没有一个模块,可以parsing它,据我所知。 什么是最简单的方法呢?