0

3 列のリストを含む単純な Excel ドキュメントを作成しようとしています。(名、姓、メールアドレス)

31 行を超えて出力すると、空の Excel ファイルが作成されます。誰もそれを修正する方法を知っていますか?

以下の私のコード:

    $guests = ORM::factory('guest')
      ->order_by('last_name', 'ASC')
      ->find_all()
  ->as_array(); 

$columns = array('first_name', 'last_name', 'email');


$objPHPExcel = new PHPExcel();

$objPHPExcel->getProperties()
        ->setCreator('Me')
        ->setLastModifiedBy('Me)
        ->setTitle('Guest List')
        ->setSubject('Guest List')
        ->setDescription('Title of Report, run on ' . date('m/d/Y H:i:s'));
$objPHPExcel->createSheet(0);
$objPHPExcel->setActiveSheetIndex(0);

    foreach($guests as $row => $guest) {
        $source = array();
        $column = 0;
        $next_row = $objPHPExcel->getActiveSheet()->getHighestRow();

        foreach($guest->as_array() as $column_name => $data)  {
            if(in_array($column_name, $columns)) {

              $objPHPExcel->getActiveSheet()
                ->setCellValueByColumnAndRow($column, $next_row+1, $data);  

              $column++;
              // unset($data);
            }
        }

    }

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');   
    $this->response->body($objWriter->save('php://output'));
    $this->response->send_file(TRUE, 'GuestList.xls');
4

1 に答える 1

0

Kohana は send_file() メソッドを使用してレンダリングされたファイルを処理するのに苦労しているため、PHPExcel の組み込みメソッドを使用してファイルをディスクに書き込みます。次に、Kohana を使用して、保存したファイルをダウンロードとして配信します。

$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save($filename, 'EXCEL2007');
$this->response->send_file( DOCROOT.$filename );
于 2013-10-19T04:53:43.643 に答える