2

我是 Perl 的新手,想使用 Excel 绘制图表。我找到了一些代码,但是当我尝试执行它时,它只在命令提示符上显示“按任意键继续...”。该代码可由其他人执行。我还尝试下载 Excel 编写器包并将它们放在 lib 文件夹中,但它根本没有执行。发现代码绝对可执行。

#!/usr/bin/perl
use strict;
use warnings;
use Excel::Writer::XLSX;

my $workbook  = Excel::Writer::XLSX->new('chart.xlsx');
my $worksheet = $workbook->add_worksheet();

# Add the worksheet data the chart refers to.
my $data = [
    ['Category', 2, 3, 4, 5, 6, 7],
    ['Value',    1, 4, 5, 2, 1, 5],
];
$worksheet->write('A1', $data);

# Add a worksheet chart.
my $chart = $workbook->add_chart(type => 'column');

# Configure the chart.
$chart->add_series(
    categories => '=Sheet1!$A$2:$A$7',
    values     => '=Sheet1!$B$2:$B$7',
);
__END__

有谁有想法吗?

4

2 回答 2

3

奥列格的回答是这样的:

根据您所使用的操作系统,您调用 perl 程序的方式可能会有所不同。这就是我的样子。

simbabque@box:~> perl xsltest.pl simbabque@box:~>

现在,如果您不确定您的工作目录在哪里,请编辑如下代码:

#!/usr/bin/perl
use strict;
use warnings;
use Excel::Writer::XLSX;
use Cwd;                 # <--- new line!
print cwd(), "\n";       # <--- new line!

现在,当您运行程序时,它应该会打印出如下内容:

simbabque@box:~> perl xsltest.pl 
/home/simbabque/
simbabque@box:~>

就我而言,工作目录是我从中调用 perl 的目录。不过,它可能是另一个。

尽管它不会在屏幕上打印任何内容,但它应该已经创建了chart.xlsx在我的工作目录中调用的文件。我可以ls在命令行上查找它,或者说file chart.xlsx看看它是否是一个 Excel 文件。

simbabque@box:~> file chart.xlsx
chart.xlsx: Zip archive data, at least v2.0 to extract

我现在可以在 Excel 或 Libre Office 中打开它。


如果您使用的是 Windows,请打开资源管理器并将其指向cwd函数所说的位置。在那里,您可以双击文件以在 Excel 中打开它。如果它与程序是同一个文件夹,您也可以使用文本编辑器的打开对话框,右键单击chart.xlsx并单击打开而不是选择

于 2012-06-15T12:15:47.403 回答
1

它正在执行。您在某处的文件中构建 Excel 表格,而无需在屏幕上打印任何内容。当脚本成功完成时,系统会打印“按任意键继续...”提示。如果你不确定你的脚本工作目录在哪里,你可以使用Cwd模块来检查它。还要确保工作目录对您是可写的。

于 2012-06-15T11:36:14.610 回答