質問

私は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

役に立ちましたか?

解決

ハム、新しいワークシートを作成している、ウィッヒは、デフォルトとして何の形式を持っていません。私は、既存のシートに自分の価値観を追加する必要がないでしょうか?

$objPHPExcel->setActiveSheetIndex(0); // index of sheet
$workSheet = $objPHPExcel->getActiveSheet();
$workSheet->setTitle('Pflaume');

他のヒント

の書式があるため、この行の失われました $ objReader-> setReadDataOnly(真の); これを読むために読者に伝えます。ののみのテンプレートのワークブックからのデータではなく、フォーマットます。

また、既存のワークシートのデータを変更する必要があります。新しいワークシートを作成すると、フォーマットされていないワークシートを作成します。また、あなたがPHPExcel_WorkSheetコピー()メソッドを使用することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top