Tag: perl

Perl Excelparsing器截断列

我是Perl新手,尝试解码读取Excel文件并将数据导出到文本文件的Perl脚本。 脚本中的其中一个步骤是奇怪地执行。 这是一个步骤: @array_name = grep {$_} @array_name; 如果值为0 ,则这一步只截断最后一列; 否则它正常工作。 如果我删除这一步,值为0的最后一列返回,但它包含了我的提取中的一些虚拟NULL列,这些列不是我的源Excel文件的一部分。 有人能帮我理解这一步吗?

什么是一个很好的CPANparsing器的HTML MS Excel文件?

我知道常规(二进制)Excel文件可以通过Spreadsheet::ParseExcel进行处理。 但是,我有一个HTML格式的文件: <html xmlns:x="urn:schemas-microsoft-com:office:excel"> <head> <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> <!–[if gte mso 9]> <xml> <x:ExcelWorkbook> <x:ExcelWorksheets> <x:ExcelWorksheet> <x:Name>Holdings</x:Name> <x:WorksheetOptions> 没有手动parsing它作为一个通用的HTML文件(如TreeBuilder等),是否有一个CPAN模块,将parsing,让我像电子表格访问这样的文件,类似于Spreadsheet::ParseExcel ? 以下是模块不能工作的地方: #!/usr/local/bin/perl use strict; use warnings; use Spreadsheet::ParseExcel; my $parser = Spreadsheet::ParseExcel->new(); my $file = 'file1.xls'; my $workbook; eval {$workbook = $parser->Parse($file);}; #($Workbook returned here is 'undef')

Excel VBA – 如何创build和转储数组复杂结构的散列?

我来自Perl的背景和学习Excel-VBA。 在Perl中,我们可以使用Data :: Dumper来获取数据结构的转储。 这里是来自Perl的例子: use strict; use Data::Dumper; my $hash={}; $hash->{key1} = [ 1, "b", "c" ]; # the value stored against key1 here is an array $hash->{key2} = [ 4.56, "g", "2008-12-16 19:10 -08:00" ]; # the value stored against key2 here is an array my $hash2={1=>['one','ONE']}; # this is a hash $hash->{key3}=$hash2; […]

如何处理Excel使用OLE模块?

朋友们,我写了一个Perl脚本,使用Spreadsheet::WriteExcel将一组CSV文件转换为电子表格格式。 经过一番研究后,我得出结论:没有select将列宽固定为“自适应”选项。 所以我在做的是在我使用Win32 :: OLE模块打开这个XLS文件的同一个脚本,同时这样做我得到了一个错误信息 Can't use an undefined value as a HASH reference 相应的代码是: # spread sheet creation my $workbook = Spreadsheet::WriteExcel->new($file_name); # … my $worksheet = $workbook->add_worksheet($work_sheet_name); # … $worksheet->write($rowNum, $j,$_,$default_format); 在这些步骤之后,我在同一个脚本中有更多的行: my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application'); $Excel->{'Visible'} = 0; #0 is hidden, 1 is visible $Excel->{DisplayAlerts}=1; #0 is hide alerts # […]

Perl:使用Excel模块通过write_formula()读取string值

我是Perl新手,试图自动化一些testing用例。 我正在使用Spreadsheet :: WriteExcel和Spreadsheet :: ParseExcel模块。 我不能够读取特定的单元格值作为string,虽然当我在Windows中打开相同的.xls文件,我可以看到作为string(PASS / FAIL)的值。 我正在使用write_formula()方法来编写string。 我创build了一个示例项目来模拟相同的。 我已经尽可能地简化了。 关于下面的代码试图做什么的一点解释: 连续写下去=> 10 10 PASS 10 10 PASS while循环控制了我们写了多less次10 10 PASS 第一个10是实际值,第二个10是预期值,然后使用公式通过或失败。 你可以请build议为什么我不能在下面的代码中使用value()方法读取PASS或FAIL作为string: use strict; use warnings; use Spreadsheet::ParseExcel; use Spreadsheet::WriteExcel; use Spreadsheet::WriteExcel::Utility; my $filename = "sample.xls"; my $workbook = Spreadsheet::WriteExcel->new($filename); my $worksheet = $workbook->add_worksheet(); my $col = 0; my $row = 0; […]

使用Perl链接excel工作表

我正在尝试编写一个perl脚本,它将第一个工作表中的单元格值链接到第二个工作表中使用perl的值。 我尝试使用以下perl模块: – Excel中::作家:: XLSX 电子表格:: WriteExcel 任何人都可以帮助我一个简单的Perl脚本,这样做。 例如: – Worksheet1 Worksheet2 所以,在上面的例子中,Worksheet1中的规则列项R1 , R2 , R3应该是超链接,当点击时,它们分别带我们到规则列项R1 , R2 , R3 。 有人可以告诉我如何使用perl或至less推动我正确的方向如何使用模块Spreadsheet :: WriteExcel或Excel :: Writer :: XLSX这个问题。 请帮我出来..!

Perl – Spreadsheet :: WriteExcel函数的解释

我想使用function“autofit_columns”在这里find: CPAN 这是我的程序到目前为止(我跳过数据库连接和查询部分) my $workbook = Spreadsheet::WriteExcel->new("TEST.xls"); my $bold = $workbook->add_format(); $bold->set_bold(); my $number = $workbook->add_format(); $number->set_num_format(0x01); $worksheet = $workbook->add_worksheet('Sheet1'); my @headings = ('Blabla…'); foreach $i (@headings){ $worksheet->write(0, $col++, $i, $bold); }; $col=0; $lrow=1; while (@row = $sth->fetchrow_array()) { $worksheet->write($lrow,$col,\@row); $lrow++; }; $sth->finish; $dbh->disconnect; autofit_columns($worksheet); $workbook->close(); sub autofit_columns { my $worksheet = shift; my $col […]

在Cygwin下使用Perl Win32 :: OLE读取.xls文件的问题

我一直在和这个打架了两天,找不到解决办法,我感到沮丧。 在Cygwin下使用下面的代码时,我得到这个错误 “Microsoft Office Excel”中的OLEexception:Excel无法访问“Empty.xls”。 该文件可能是只读的或encryption的。 Win32 :: OLE(0.1703)错误0x800a03ec在方法/ PROPERTYGET“打开”在m:/In/make_excel.pl行24 事情是在DOS提示符下工作完美。 该文件当然不是只读的。 我猜测文件格式解释有一些问题。 任何提示? 这将不胜感激。 #!/usr/bin/perl use Win32::OLE; use Win32::OLE::Variant; use Win32::OLE::Const 'Microsoft Excel'; $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application'); $Excel->{'Visible'} = 0; #0 is hidden, 1 is visible $Excel->{DisplayAlerts}=0; #0 is hide alerts # Open File and Worksheet my $Book = $Excel->Workbooks->Open('C:\Empty.xls'); …

用Perl重写现有的xls文件

我正在尝试在已经存在的excel文件中写入数据,但是我尝试的代码是创build一个新工作表,并用数据擦除旧工作表。 这是我使用的代码 #!/usr/bin/perl –w use strict; use Spreadsheet::WriteExcel; # Create a new Excel file my $FileName = 'Report.xls'; my $workbook = Spreadsheet::WriteExcel->new($FileName); # Add a worksheet my $worksheet1 = $workbook->add_worksheet(); #<- My Doubt # Change width for only first column $worksheet1->set_column(0,0,20); # Write a formatted and unformatted string, row and column # notation. $worksheet1->write(0,0, "Hello"); […]

如何使用Perl将multidimensional array(AoA)添加到Excel?

我想使用Perl在Excel中添加存储在2×2维数组中的数据。 我知道如何打开和添加简单的数据。 这我可以使用for循环。 但是,我怎么能优雅地做呢? 这是我想要做的 $sheet->Range("A1:B"."$size")->{Value} = @$data; or @data; or {@data}; or {\@data}; 其中@data是二维数组。 # use existing instance if Excel is already running eval {$ex = Win32::OLE->GetActiveObject('Excel.Application')}; die "Excel not installed" if $@; unless (defined $ex) { $ex = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;}) or die "Oops, cannot start Excel"; } # get a new workbook […]