Tag: perl

Perl:将数据从散列转储到Excel中

我有一个关键和值的散列(数组)。 我想将它们转储到电子表格中,但难以安排它们。 哈希% key1 – > foo吧 key2->约翰亚当鳃 key3->苹果香蕉芒果橙 码: use strict; use warnings; use Excel::Writer::XLSX; my $pattern = "BEGIN_"; my $format; my @keys = qw(key1 key2 key3); foreach my $key(@keys){ open my $fh, "<","filename.txt" or die $!; while ( <$fh> ) { if (/$pattern/) { push(@matching_lines, $_); } } $hash{$key} = [@matching_lines] ; for […]

如何使用Excel :: Writer :: XLSX自动调整列宽

我正在使用Excel :: Writer :: XLSX模块生成excel报告,但是我找不到有关'autofit'的方法,现在列宽必须事先设置。 所以我想知道如何使用Excel :: Writer :: XLSX模块自动调整表格中的列宽。 谢谢。

如何从Perl或命令行激活Excel加载项?

(请原谅我对Excel加载项的无知,并在适当的地方随时纠正我的teminology。) 我有一个定期使用的Excel加载项。 此加载项插入一个工具栏与一些button。 我想自动完成在Excel中打开电子表格的任务,然后“单击”其中一个button。 换句话说,我想使用Perl(或命令行)来激活此加载项的特定function。 我无法立即访问加载项的源代码,但是我可以根据需要请求特定的信息,如过程名称。 我不能使用CPAN模块来完成这个任务 – 只有与我的ActivePerl版本一起安装 – 但是我有Win32 :: OLE ,这对其他Office自动化有帮助。 任何指针?

我如何通过Excel中的ActiveX控件运行Perl脚本?

我想通过点击Excel电子表格中的button来运行Perl脚本。 由于该button被分配执行一个VBmacros,macros应该有效地执行该程序。 作为我的第一个VB脚本,这是我想出了,这引发了一个恼人的Run-time error '424': Object required错误。 Sub RunPerlScript() System.Diagnostics.process.Start ("perlscript.pl") End Sub 我怎样才能让这个脚本去做我想做的事?

Perl读取巨大的Excel文件

我有一个巨大的xlsx文件(约127 MB),并希望阅读使用Spreadsheet::Excel模块,但我在2GB内存机器上出现 “ 内存不足”错误 。 (请注意,脚本对较小的Excel 2007文件可以正常工作) 有什么办法可以逐行读取excel文件,而不会触及内存限制。 search谷歌我遇到http://discuss.joelonsoftware.com/default.asp?joel.3.160328.14但我不熟悉如何将电子表格存储到标量。 有人可以给我一个阅读excel 2007文件作为标量和打印单元格值的例子。 以下是我在较小的电子表格上运行的当前脚本。 #!/usr/bin/perl use Excel::Writer::XLSX; use Spreadsheet::XLSX; my $workbook = Excel::Writer::XLSX->new('Book1.xlsx'); my $worksheet = $workbook->add_worksheet(); # use strict; my $excel = Spreadsheet::XLSX -> new ('Book2.xlsx'); my $date_format = $workbook->add_format(); $date_format->set_num_format('dd/mm/yy hh:mm'); # Columns of interest @columns=(0,1,2,5,9,10,12,13,31); @reportlist=("string1","String2","String3"); @actuallist=("ModifiedString1","ModifiedString2","ModifiedString3"); $max_list=$#reportlist; foreach my $sheet (@{$excel -> {Worksheet}}) […]

CSV格式不正确?

我使用Powershell中的EXPORT-CSV生成CSV,然后将其提供给Perl脚本。 但Perl无法导入文件。 我已经validation了CSV文件与工作版本(已从相同的Perl脚本,而不是PowerShell导出),没有任何区别。 彩色标签是非常相同的,它们都以分号作为分隔符。 如果我在Excel中打开文件,则每行中的第一个单元格中的所有内容都将结束(这意味着我必须执行文本到颜色)。 工作文件从一开始就在不同的单元格中结束。 添加到混乱:当我在记事本中打开文件,并复制/粘贴到新文件的内容导入工程! 那么,我错过了什么? 是否有“隐藏”的属性,我不能用记事本发现? 我必须更改编码types吗? 请帮忙:)

如何让Perl的Spreadsheet :: WriteExcel使用VLOOKUP创build公式?

我遇到了Spreadsheet :: WriteExcel和使用VLOOKUP公式的困难。 以下testing脚本使用一些数据填充工作表,并尝试创buildVLOOKUP公式。 当我打开生成的Excel文件时,公式结果显示为#VALUE! 。 如果我手动编辑任何包含公式的单元格(按F2然后只是input而不改变任何东西),我可以让Excel正确地评估公式。 任何想法出了什么问题? 对于它的价值,如果我在OpenOffice中打开相同的文件,公式工作正常。 use strict; use warnings; use Spreadsheet::WriteExcel; my $wb = Spreadsheet::WriteExcel->new('foo.xls'); my $ws = $wb->add_worksheet; for my $r (0 .. 9){ for my $c (0 .. 4){ $ws->write($r, $c, $r * 10 + $c); } $ws->write($r, 10, $r * 10); my $formula = sprintf('=VLOOKUP(K%s, A1:B10, 2, FALSE)', […]

我如何从Excel调用Perl脚本?

我想使用VBA从Excel调用Perl脚本。 我已经使用了一个shell命令。 我也使用了下面的代码: Function Chk() Dim RetVal RetVal = Shell("C:\Perl\bin\Hello.pl", 1) End Function 但是上面的函数不会运行该文件。 有什么错误吗? 有没有其他的方法来使用Excel调用Perl脚本或外部程序?

我该如何将CSV数据显示为图表?

我有一组数据存储在文本文件中,我现在通过Perl把它们放到一个CSV文件中。 有问题的数据现在需要显示在图表中。 你有什么build议呢? build议使用XML,但XML不能将数据本身放入图表中。 理想的情况是:数据将从文本文件中解码,放入一个Excel电子表格中,并以图表的forms显示出来,所有这些代码都有一个代码,因为这些文本文件中有许多数据。 Perl,XML,C,C ++,C#和VB都可以使用。

在perl中自动执行excel文件处理,并避免对话/ UI交互

我如何保证当我通过OLE自动化Microsoft Excel时不会出现popup对话框? 我正在使用Perl模块(Win32 :: OLE)。 我可以使用下面的代码避免大多数对话popup窗口: use Win32::OLE; use Win32::OLE::Variant; use Win32::OLE::Const; my $excel_symbols = Win32::OLE::Const->Load('Microsoft Excel'); my $excel = Win32::OLE->new('Excel.Application', sub { $_[0]->Quit();} ); $excel->{'Visible'} = 0; $excel->{'DisplayAlerts'} = 0; $excel->Workbooks->Open('c:\some_excel_file.xls', { 'UpdateLinks' => $excel_symbols->{'xlUpdateLinksNever'}, 'ReadOnly' => 1, 'IgnoreReadOnlyRecommended' => 1 }); 但是对于某些文件,我继续使用以下文本进行对话: 这个文件不是一个可识别的格式。 如果您知道该文件来自与Microsoft Excel不兼容的其他程序,请单击“取消”,然后在其原始应用程序中打开该文件。 如果您希望以后在Microsoft Excel中打开该文件,请以兼容的格式(如文本格式)将其保存。 如果您怀疑文件已损坏,请单击“帮助”以获取有关解决问题的更多信息。 如果您仍想查看文件中包含哪些文本,请单击确定。 然后在文本导入向导中单击完成。 确定取消 有时会出现一个类似的对话框,其中包含“确定”,“取消”和“帮助”button。 我无法控制提供给脚本的文件的质量。