4

そこで、PHPExcel で作成した Excel ファイルを PDF にエクスポートしています。私の唯一の問題は、コンテンツがページの幅 (長さではなく) を超えると、コンテンツが消えることです。そのコンテンツがあるべき場所に空白のページだけが作成されます。ドキュメントのこの例のような行で列区切りを挿入しようとしましたが、行区切りのみが PDF で機能するようです:

$objPHPExcel->getActiveSheet()->setBreak( 'D10' , \PHPExcel_Worksheet::BREAK_COLUMN );

私は Symfony2 コントローラー内から作業していることに言及する価値があるため、PHPExcel 列挙型の前にスラッシュがあります。

私の理想的な解決策は、実際の Excel ドキュメントに表示されるようにテーブル全体を表示するために、最初のページの横に配置できる 2 番目のページに余分なコンテンツを実行することです。

4

2 に答える 2

1

これは、PHPExcel が HTML 出力を PDF (つまり tcPDF) としてレンダリングするために使用する外部ライブラリの制限です。

HTML から PDF を生成できる他の多くのライブラリ (domPdf や mPdf など) を認識しており、PHPExcel の将来のバージョンでは、これらのライブラリのどれを使用するかを選択できるようになりますが、いずれも生成できないようです。ワークシートの全幅からのデータを表示するための複数のページ。

誰かが代替案を提案できない限り、これが近い将来の制限のままになることを恐れています.

于 2012-05-15T12:59:28.953 に答える
0

私は垂直方向に同様の問題を抱えていましたが、私が見つけた解決策はこれを使用することでした

$highestRow = $objPHPExcel->setActiveSheetIndex(0)
    ->getHighestRow();

$objPHPExcel->setActiveSheetIndex(0)
    ->getPageSetup()
    ->setPrintArea("A1:I" . $highestRow )
    ->setFitToHeight(255);

幅に似たものを試すことをお勧めします。例えば ​​:

   $highestColumn= $objPHPExcel->setActiveSheetIndex(0)
        ->getHighestColumn();


    $objPHPExcel->setActiveSheetIndex(0)
        ->getPageSetup()
        ->setPrintArea("A1:" . $highestColumn . "10" )
        ->setFitToWidth(255);
于 2016-10-14T12:57:37.840 に答える