2013-06-17 5 views
0

Я хочу экспортировать некоторый файл php в класс использования файлов XLS PHPEXcel, я не использовал это раньше.файл экспорта php в xls использует класс PHPExcel

Notif в моем браузере: "Фатальная ошибка: Разрешены памяти размером 25165824 байт исчерпаны (пытались выделить 1056 байт) в C: \ AppServ \ WWW \ kjjp2 \ Classes \ PHPExcel \ Cell.php на линии 1124"

код:

<?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; 
    ?> 
+0

Спасибо вам Gowry. Извините, мой английский не хорош :) – Sinaga

ответ

0

Вы работаете из памяти, которая может быть использована PHP. Вы можете указать, сколько ОЗУ будет использовать PHP в php.ini. В настоящее время этот предел установлен на 24 МБ, что довольно мало. Попробуйте увеличить его.

ini_set('memory_limit', '256M'); 
+0

dontomaso. Я установил ограничение памяти как ваше предложение, но не решил. У меня все еще такая же проблема. – Sinaga

+0

Dontomaso. Извините, я был не прав, чтобы установить ограничение памяти на php.ini. После того, как я сделаю это, моя проблема решена. Большое вам спасибо. – Sinaga

+0

У меня есть файл php и хочу экспортировать его в файл XLS. Я могу сделать это с помощью моего кода. Но у меня проблема, я хочу экспортировать не весь файл, но я хочу экспортировать файл, который я выбрал с сортировкой. Можете ли вы мне помочь? – Sinaga

0

PHPExcel известен тем, что он голоден. Сайт имеет дискуссии с некоторыми обходными см http://phpexcel.codeplex.com/discussions/242712?ProjectName=phpexcel

Вы также можете использовать другую библиотеку как старый Spreadsheet_Excel_Writer Lib (который имеет свои недостатки, а) http://pear.php.net/package/Spreadsheet_Excel_Writer/redirected

Смежные вопросы