0

PHPEXcelクラスを使用していくつかのファイルphpをXLSファイルにエクスポートしたいのですが、以前はこれを使用していませんでした。

ブラウザの通知: 「致命的なエラー: C:\AppServ\www\kjjp2\Classes\PHPExcel\Cell.php 行 1124 で、25165824 バイトの許容メモリ サイズが使い果たされました (1056 バイトを割り当てようとしました)」

コード:

    <?php
    include "config/koneksi.php";

    error_reporting(E_ALL);
    require_once 'Classes/PHPExcel.php';
    // Create new PHPExcel object
    $objPHPExcel = new PHPExcel();

    $query = "SELECT * FROM `tabeldata`";
    $hasil = mysql_query($query);

    // Set properties
    $objPHPExcel->getProperties()->setCreator("Erik")
    ->setLastModifiedBy("Erik")
    ->setTitle("Office 2007 XLSX ")
    ->setSubject("Office 2007 XLSX ")
    ->setDescription("Document for Office 2007 XLSX, generated using PHP classes.")
    ->setKeywords("office 2007 openxml php")
   ->setCategory("Test result file");

    // Add some data
    $objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue('A1', 'Jenis Report')
    ->setCellValue('B1', 'Pembayaran')
    ->setCellValue('C1', 'No')
    ->setCellValue('D1', 'Cabang')
     //and some files


    ->setCellValue('AG1', 'Surveyor');

    $rowNya = 3;
    $no = 0;
    while($row=mysql_fetch_array($hasil)){
    $no = $no +1;
    $objPHPExcel->setActiveSheetIndex(0)

    ->setCellValue("A$rowNya", $row['jenReport'])
    ->setCellValue("B$rowNya", $row['pembayaran'])
     ->setCellValue("C$rowNya", $row['no'])
     ->setCellValue("D$rowNya", $row['cabang'])
    ->setCellValue("E$rowNya", $row['namaSales'])
    ->setCellValue("F$rowNya", $row['jenLaporan'])
          //and some files

    ->setCellValue("AG$rowNya", $row['surveyor']);


    $rowNya = $rowNya + 1;
    }

    // Rename sheet
    $objPHPExcel->getActiveSheet()->setTitle('Simple');

    // Set active sheet index to the first sheet, so Excel opens this as the first sheet
    $objPHPExcel->setActiveSheetIndex(0);

    // Redirect output to a client’s web browser (Excel5)
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="database.xls"');
    header('Cache-Control: max-age=0');

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('php://output');
    exit;
    ?>
4

2 に答える 2

0

PHPExcel はメモリを大量に消費することで知られています。Web サイトには、いくつかの回避策に関する議論があります。http://phpexcel.codeplex.com/discussions/242712?ProjectName=phpexcelを参照してください。

古い Spreadsheet_Excel_Writer lib (欠点もあります) のような別のライブラリの使用を検討することもできます http://pear.php.net/package/Spreadsheet_Excel_Writer/redirected

于 2013-06-17T06:25:17.217 に答える
0

PHP で使用できる RAM が不足しています。PHP が使用する RAM の量を php.ini で設定できます。現在、この制限は 24MB に設定されていますが、これはかなり低い値です。増やしてみてください。

ini_set('memory_limit', '256M');
于 2013-06-17T06:03:09.603 に答える