【问题标题】:Cant set setPrintArea correctly无法正确设置 set PrintArea
【发布时间】:2018-06-28 17:20:28
【问题描述】:

我正在使用 v1.3.1 的 phpspreadsheet。

我正在构建一个 excel 文件(下载),一切正常。唯一的问题是定义 setPrintArea ......它总是将标准 PrintArea 返回到 excel 中。基本上,我构建了 excels 行并在定义 printArea 之后......我之前也尝试过,但没有成功。

$spreadsheet = IOFactory::load("template.xlsx");
$worksheet = $spreadsheet->getActiveSheet();

foreach ($rows AS $k => $v ) {
    $worksheet->getCell('F' . ($k + 3))->setValue($v);
    $worksheet->getCell('G' . ($k + 3))->setValue($v);
}

$worksheet->getPageSetup()->setPrintArea('A1:AG58');

...

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');
$writer = IOFactory::createWriter($spreadsheet, 'Xls');
$writer->save('php://output'); //-- force download version

该区域有 58 行,但我无法将该区域设置为“AG”单元格...基本上,我想在一页中打印我所有的 excel,而不是 8。

谢谢!

【问题讨论】:

    标签: php phpspreadsheet phpoffice


    【解决方案1】:

    setPrintArea() 定义要打印的内容,但不定义打印的方式。 要将所有 A->AG 列和 58 行显示在一个页面上,您可以使用:

    $worksheet->getPageSetup()->setFitToPage(true);
    

    或限制一维

    $worksheet->getPageSetup()->setFitToWidth(1);
    $worksheet->getPageSetup()->setFitToHeight(0);
    

    https://phpspreadsheet.readthedocs.io/en/develop/topics/recipes/#setting-printer-options-for-excel-files

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-05
      • 2012-05-19
      • 1970-01-01
      • 2015-05-29
      • 2017-01-03
      • 2018-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多