【问题标题】:Setting an Excel worksheet's custom page size (not the printable area) from Perl从 Perl 设置 Excel 工作表的自定义页面大小(不是可打印区域)
【发布时间】:2011-10-05 21:15:56
【问题描述】:

长话短说,我真正想做的就是将我的报告打印在半张纸上。如果 Excel 报告的纸张尺寸设置为正好 8.5" x 5.64",我让 Kinko's 将一包打印纸切成两半,我的激光打印机非常乐意将它们吸入并正确打印报告。

这可以在 Excel 中轻松完成,但这是唯一的调整,在我的项目中,我无法使用 Spreadsheet::WriteExcel 使用 Perl 进行自动化。 CPAN 文档指出,您可以从 Excel 通常可用的一些默认尺寸中进行选择,但没有提供指定您自己的纸张尺寸的选项。

即使您事先在 Excel 中建立了所需的自定义尺寸,使其在未来的电子表格中可用,作为您可选择的纸张尺寸之一,似乎也没有使用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);

【问题讨论】:

    标签: perl excel spreadsheet


    【解决方案1】:

    由于 VBScript 可以在本地完成许多这些事情,也许您可​​以尝试使用 Inline:WSC 将必要的 VBScript 嵌入到您的主 Perl 脚本中。

    您可以通过录制您设置打印大小的 Excel 宏来确定所需的 VBScript。然后将该代码嵌入到您的主 Perl 脚本中。

    【讨论】:

    • 哦,有趣。我会试一试,让你知道!谢谢。
    【解决方案2】:

    我是 Spreadsheet::writeExcel 的作者。

    据我所知,Excel 中没有设置自定义纸张大小的选项。这通常是在打印机中设置的(如果我错了,请纠正我)。

    Excel 可以将打印机信息与工作簿数据一起存储,因此可能有一种解决方法。

    您能否给我发一份仅在单元格 A1 中包含数据的单张工作簿和一份带有自定义页面集的副本,我会看看是否可行。

    附:横向模式下的可用选项 B5(索引 13)相当接近:8.27" x5.83"。或者未记录的“Organiser L”(索引 129),它应该是一半字母大小:8.5" x 5.5"。

    【讨论】:

    • 找到一个似乎有 VBScript 解决方法的线程:vistax64.com/vb-script/241888-how-set-paper-size-vbs.html
    • 上周我将您要求的信息发送至您的 jmcnamara@cpan.org。我不确定你是否收到了。谢谢!
    • 乍得,我发了回复(我会再发一次)。基本上,没有任何简单的方法可以做到这一点。
    • 好的,非常感谢这次尝试!
    猜你喜欢
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多