Tag: perl

Perl的@INCpath中没有包含已安装的模块

在包含Excel-Writer-XLSX模块的@INCpath中遇到问题。 在发布这个问题之前,我做了一些研究并尝试了几个解决scheme,但都失败了。 所以我做了 $sudo perl -MCPAN -e 'install Excel::Writer::XLSX' 但是在我运行代码之后,我收到了这个消息 –can't locate Excel/Writer/XLSX.pm in @INC(you may need to install the Excel::Writer::XLSX module) (@INC contains: /Library/Perl/5.18/darwin-thread-multi-2level/…) 这不是一个重复的问题,因为Excel :: Writer :: XLSX模块已成功安装在我的电脑中,我不需要再次安装它。 事情是当我检查我的库文件夹,perl5文件夹不存在,因为它是@INCpathbuild议。 相反,Perl5文件夹是在我的用户文件夹…实际上,该模块可以在perl5文件夹内的lib文件夹中find 我不太确定发生了什么…为什么@INCpath显示库文件夹内的perl / 5.18? 如果你知道如何解决这个问题,请咨询。 非常感谢!

只读取XLSX文件中的可见列

我正在使用Spreadsheet::XLSX来读取excel文件,并使用Excel::Writer::XLSX将其重写到另一个excel中。在该excel文件中,某些列是隐藏的,但在写入期间,隐藏列也变为可见。 有反正使用Spreadsheet::XLSX只读可见columns.I无法在文档中find任何方式。

Perl excel Spreadsheet :: ParseXLSX通过公式获取单元格值

要分析的Excel工作表有两个工作表: 第一个工作表:单元格A1具有以下公式= TD!N2并显示正确的值 第二个工作表称为“TD”:单元格N2具有以下公式= SUM(F47:F49),并且是逗号后有3个数字的数字值 例: 第二张工作表“TD”: F47 = 1,200 F48 = 1,300 F49 = 1,401 N2 = SUM(F47:F49)= 3,901 第一个工作表: A1 = TD!N2显示3,901 一切看起来不错,但是当我尝试用Spreadsheet :: ParseXLSXparsing这个Excel文件 my $parser = Spreadsheet::ParseXLSX->new(); my $oBook = $parser->parse("$excelfile"); my $worksheet = $oBook->worksheet("first"); my $cell = $worksheet->{Cells}[1][0]; # A1 print Dumper($cell); 转储的结果如下所示: $VAR1 = bless( { 'Merged' => '', […]

阅读Excel文件中的图像内容 – 用Perl

我有包含embedded式图像的XLSX / XLSM文件。 我使用Spreadsheet :: XLSX来提取文本值 – 到目前为止,这么好。 但是,看起来好像没有简单的方法来从Perl的Excel工作表中获取图像。 (是的,我查了一下。)我的代码将在Linux服务器上运行 – 我想避免安装Win32 :: OLE,如果可能的话。 我的第一个想法是转换XLSX-> ODS,打开woorkbook作为zip并从那里获取图像文件。 问题:我不知道如何映射图像和content.xml文件。 (可能的解决方法:根据单元格坐标和表单命名图像? – 现在不可能。) 我将不胜感激任何帮助。

在附加数据的同时在Excel SaveParser中发出

我想创build,然后在Excel文件中使用Perl脚本附加一些数据。 正如许多论坛链接所build议的,我参考了Spreadsheet :: WriteExcel模块链接上提供的示例代码 。 电子表格创build成功,没有问题。 但是,然后我使用第二个脚本来追加一些数据到现有的文件。 我使用Spreadsheet :: ParseExcel :: SaveParser模块,并使用此链接提供的示例代码。 以下是我的代码完全相同的网站上提供的代码: #!/usr/bin/perl use Spreadsheet::ParseExcel; use Spreadsheet::ParseExcel::SaveParser; use Spreadsheet::WriteExcel; # Open an existing file with SaveParser my $parser = Spreadsheet::ParseExcel::SaveParser->new(); my $template = $parser->Parse('perl.xls'); # Get the first worksheet. my $worksheet = $template->worksheet(0); my $row = 0; my $col = 0; # Overwrite the […]

用Perl,Office 2016升级安全问题处理Excel文件

我已经在服务器上安装了Spreadsheet :: ParseExcel ,并从文档中testing了示例代码。 这是我正在使用的代码: #!/usr/bin/perl -w use strict; use Spreadsheet::ParseExcel; my $parser = Spreadsheet::ParseExcel->new(); my $file = "/data/excel/matrix.xls"; my $workbook = $parser->parse($file); if ( !defined $workbook ) { print "can't find workbook!!!"; die $parser->error(), ".\n"; } for my $worksheet ( $workbook->worksheets() ) { my ( $row_min, $row_max ) = $worksheet->row_range(); my ( $col_min, $col_max […]

Perl Excel OLE-> GetActiveObject get的随机永久卡住

我正在使用perl来处理batch file中的excel文件,该文件使用这种代码来为每个文件运行macros: print strftime("[%H:%M] ", localtime(time)), "Handling file $path\n"; my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit'); print strftime("[%H:%M] ", localtime(time)), "OLE Created\n"; 有时在数千次成功运行之后,这个过程就会在两个打印语句之间卡住,甚至几个小时后也不会发生。 在查看任务pipe理器时,Excel进程正在运行,如果我杀了它,那么进程将继续。 macros以Excel的方式结束到Application.Quit 。 有什么办法来设置这种甚至更好的某种超时,以解决这个问题? 我可以通过启动一个最终会杀死excel进程的线程来修复这个问题,在正常情况下在杀死之前停止线程,但是我希望得到一个更优雅的解决scheme。

r – Library:gdata – parsing文件时出错,而read.xls无法创buildIntermediate csv

我试图导入一个xls文件到R,但失败了。 似乎库无法创build中间的CSV文件。 有任何解决办法吗? 谢谢。 test <- read.xls("~/Desktop/qwe.xls", perl = '/usr/bin/perl', verbose = TRUE, sheet = 1) Using perl at /usr/bin/perl Using perl at /usr/bin/perl Converting xls file "/Users/seanhuang/Desktop/qwe.xls" to csv file "/var/folders/ly/pxw72gmd7gjdvdbhk530cwrh0000gq/T//Rtmpx8yszv/file1491d47e6960.csv" … Executing ' '/usr/bin/perl' '/Library/Frameworks/R.framework/Versions/3.3/Resources/library/gdata/perl/xls2csv.pl' '/Users/seanhuang/Desktop/qwe.xls' '/var/folders/ly/pxw72gmd7gjdvdbhk530cwrh0000gq/T//Rtmpx8yszv/file1491d47e6960.csv' '1' '… perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LC_ALL […]

如何删除string中的括号内的文本,同时仍然保留其他文本?

my $book = Spreadsheet::Read->new(); my $book = ReadData ('D:\Profiles\jmahroof\Desktop\Scheduled_Build_Overview.xls'); my $cell = "CD7"; my $n = "1"; my $send = $book->[$n]{$cell}; $send =~ s/\(/ /g; $send =~ s/\)//g; 我有上面的代码,从Excel文件中获取数据,然后从指定的单元格中挑选文本,并从string中删除括号。 我需要能够删除方括号内的所有内容,包括括号本身,而留下文本的其余部分。 string的格式如下所示: text(text)

有什么办法使用SpreadSheet :: WriteExcel来指定特定轴上的标签之间的时间间隔吗?

我正在使用Spreadsheet :: WriteExcel模块,并根据一些数据创build列图。 但是,在一些图表中,我希望更改x轴标签之间的间隔。 目前,其中一些正在交替显示标签(间隔= 2)。 我想使这个间隔为1,以便显示所有的标签。 是否Spreadsheet :: WriteExcel :: Chart; 有这个function吗?