2010-06-11 343 views
3

的代碼我目前有:PHPExcel寫入Excel並保存到服務器?

<?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";  
    } 

?> 

上面的代碼執行和保存N無的文件夾中的文件.xlsx,但我發現這個問題是在for循環中保存的所有執行最大count(result1) excel文件。

回答

3

去之前深,有一點是明確

你不執行$查詢結果,既不取它,並在$ result1查詢你使用它是不可能的,

相同的親blem與$ RESULT1

存在,您可以使用:

$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-- 

但最好寫JOIN,而不是這兩個查詢