簡體   English   中英

使用PHPExcel進行選擇性下載

[英]Selective download with PHPExcel

我正在使用PHPExcel下載存儲在MySQLi中的一些數據。 我制定了一種適用於每個數據庫的算法(理論上)。 我已經對其中的一些進行了測試,效果很好。

我提取了數組中的列名稱: column_names ,然后將標題和數據添加到excel報告中。

    // Adding titles
    $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('A1',$bigTitle);

    $counter = 0;
    $let = 'a';
    while ($counter <= count($column_names)){
        $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValue(strtoupper($let).'3',  $column_names[$counter]);
        $let++;
        $counter++;
    }


    //Adding data
    $i = 4;
    while ($row = $result->fetch_array()) {
        $counter = 0;
        $let = 'a';
        while ($counter <= count($column_names)){
            $objPHPExcel->setActiveSheetIndex(0)
                        ->setCellValue(strtoupper($let).$i, $row[$column_names[$counter]]);
            $let++;
            $counter++;
        }
        $i++;
    }

我正在使用連接到數據庫

$conexion = new mysqli('localhost','user','pass','SAT_dbname',21);

我將“ SAT_db1”數據庫克隆到“ SAT_db2”。 它們具有完全相同的結構,但信息不同。 如果我正在使用,下載工作正常

$conexion = new mysqli('localhost','user','pass','SAT_db1',21);

但是,如果我使用它是行不通的

$conexion = new mysqli('localhost','user','pass','SAT_db2',21);

我不知道如果不同名稱的名稱相同怎么辦。 PHPExcel是否不能使用克隆的數據庫? 還有什么呢?

該錯誤在瀏覽器中顯示為“找不到文件”。

編輯我整天都在測試下載,最后我發現了一些東西:當寄存器很少時,我可以下載。 當我再拿幾個的時候,我不能。

我正在將文件發送到瀏覽器:

    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment;filename="Report.xlsx"');
    header('Cache-Control: max-age=0');

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter->save('php://output');

仍然沒有找到解決方案。

PHPExcel具有緩存限制。 我不得不手動更改這些限制。 在創建PHPExcel對象之前,我使用了以下代碼:

set_time_limit(0) ;

$cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp; 
$cacheSettings = array( 'memoryCacheSize' => '500MB');
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);

我假設如果您有更大的文件,則可以擴展“ memoryCacheSize”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM