2010-06-11 10 views
3

Le code que j'ai actuellement:PHPExcel écrire Excel et enregistrer sur le serveur?

<?php 

    /** PHPExcel */ 
    require_once '../Classes/PHPExcel.php'; 

    /** PHPExcel_IOFactory */ 
    require_once '../Classes/PHPExcel/IOFactory.php'; 

    // Create new PHPExcel object 
    $objPHPExcel = new PHPExcel(); 

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

    $result = 'select * from table1'; 

    for($i=0;$i<count($result);$i++) { 

    $result1 = 'select * from table2 where table1_id = ' . $result[$i]['table1_id']; 

    for ($j=0;$j<count($result1);$j++) { 
     $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A' . $j, $result1[$j]['name']); 
    } 

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

    // Save Excel 2007 file 
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 
    $objWriter->save(str_replace('.php', '.xlsx', __FILE__)); 

    // Echo done 
    echo date('H:i:s') . " Done writing file.\r\n";  
    } 

?> 

Le code ci-dessus exécute et sauvegarde n pas de .xlsx fichiers dans le dossier, mais le problème que je reçois est le plus grand count(result1) dans la boucle for d'exécution dans tous sauvés fichiers Excel.

Répondre

3

Avant d'aller en profondeur, une chose est claire

Vous n'avez pas exécuté la requête pour $ résultat, ni le chercher et sur $ result1 requête que vous utilisez ce qui n'est pas possible,

Même pro blème existe avec result1

$ Vous pouvez utiliser:

$result = mysql_query('select * from table1'); 
while($fetch_result=mysql_fetch_array($result)) 
{ 
    $result2 = mysql("select * from table2 where table1_id = '".$fetch_result['table1_id']."'"); 

    while($fetch_result2=mysql_fetch_array($result2) 
    { 
    --your code-- 

Mais il est préférable d'écrire au lieu de REJOIGNEZ ces deux requêtes

Questions connexes