我正在使用phpspreadsheet v1.3.1。
我正在构建一个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。
谢谢!
答案 0 :(得分:0)
setPrintArea()定义要打印的内容,而不是应如何打印的内容。 要在一个页面上显示所有A-> AG列和58行,您可以使用:
$worksheet->getPageSetup()->setFitToPage(true);
或限制为一维
$worksheet->getPageSetup()->setFitToWidth(1);
$worksheet->getPageSetup()->setFitToHeight(0);