最近、PHPとMS Excelの統合をいじっています。私の仕事は、既存のスプレッドシートを開き、いくつかのデータを追加し、入力されたスプレッドシートを新しいファイルとして保存することです。xlsx ファイルがテンプレートとして使用されますが、基本的にはテンプレート充填エンジンのようなものです。
かなりいいフレームワークと思われるPHPExcelを調べました。概念実証を実装するために、私は次のことを行いました (私が何をする必要があるかを説明するために必要な最小限に減らしました):
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("myTemplateToFill.xlsx");
//Here comes the actual filling
$objWorksheet = $objPHPExcel->createSheet();
$objWorksheet->setTitle('Apple') ;
$objWorksheet->setCellValue('A1', 'Banana');
$objPHPExcel->setActiveSheetIndex(0);
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save('myFilledTemplate.xlsx');
これを実行すると、新しいファイルが作成され、daat が挿入されましたが、悲しいことに、既存の書式設定がすべて失われていることがわかりました。
問題は、PHPExcel にこれらの formattigs を新しいファイルに保持させる方法があるかどうかです。またはさらに先へ: チャートなどをテンプレート ファイルに保持し、それらを私が試した方法で埋めることは可能ですか?
共有されたすべての経験に感謝します!
K