长话短说,我真正想做的就是将我的报告打印在半张纸上。如果 Excel 报告的纸张尺寸设置为正好 8.5"x 5.64",我让 Kinko 将一包打印纸切成两半,我的激光打印机非常乐意将它们吸入并正确打印报告。
这可以在 Excel 中轻松完成,但这是唯一的调整,在我的项目中,我无法使用 Perl 使用 Spreadsheet::WriteExcel 进行自动化. CPAN 文档指出,您可以从 Excel 通常可用的一些默认尺寸中进行选择,但不提供指定您自己的纸张尺寸的选项。
即使您事先在 Excel 中建立了所需的自定义尺寸,使其在 future 的电子表格中可用,作为您可选择的纸张尺寸之一,似乎没有索引,使用 set_paper($index) ,这将指定新建立的自定义大小。
先感谢您!
#!/usr/local/gnu/bin/perl --
use strict;
use warnings;
use Spreadsheet::WriteExcel;
my $repWB = Spreadsheet::WriteExcel->new('../tmp/test.xls');
my $repWS = $repWB->add_worksheet('AA');
$repWS->set_paper(1);
最佳答案
由于 VBScript 可以在本地完成许多这些事情,也许您可以尝试使用 Inline:WSC 将必要的 VBScript 嵌入到您的主 Perl 脚本中。 .
您可以通过记录您设置打印大小的 Excel 宏来确定所需的 VBScript。然后将该代码嵌入到您的主 Perl 脚本中。
关于perl - 从 Perl 设置 Excel 工作表的自定义页面大小(不是可打印区域),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7655880/