Ich muss eine vorhandene xlsx-Datei öffnen, die Textfelder enthält (die mit der vordefinierten Option wie Kreise, Quadrate usw. erstellt), und ich muss direkt hinter diese Objekte schreiben (sie sind transparent).PHPExcel fehlende Textfelder
Der Code unten tut alles gut, außer dass die neue Datei ohne die Boxen herunterlädt.
if(file_exists("app/file.xlsx")){
$objTpl = PHPExcel_IOFactory::load("app/file.xlsx");
$objTpl->setActiveSheetIndex(1);
$objTpl->getActiveSheet()->setCellValue('A1', 'x');
$objTpl->getActiveSheet()->setCellValue('A2', 'y');
$objTpl->getActiveSheet()->setCellValue('A3', 'z');
$filename = 'new_file.xlsx';
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objTpl, 'Excel2007');
ob_end_clean();
$ret = $objWriter->save('php://output');
exit;
}
Dann müssen Sie einige Code für die PHPExcel Excel2007 Reader zu analysieren und zu interpretieren, für Kern PHPExcel Objekt, um sie zu halten, und für die PHPExcel Excel2007 Writer, um sie zu schreiben; weil sie nicht von der Bibliothek unterstützt werden –
Wirklich? Nun ... lass uns eine andere Strategie ausprobieren. Vielen Dank! –
Wirklich! Sie könnten sich COM (benötigt Windows Server mit MS Excel installiert) oder PUNO (erfordert Server mit Open/LibreOffice installiert) oder libXl ansehen –