2016-05-27 37 views
2

下午好!錯誤打印來自oci_fetch_array的PHPexcel大數據

請幫我看看我的代碼。我有一個查詢讀取大量的數據並用oci_fetch_array打印,但我需要將它導出到Excel電子表格中。

我用PHPexcel 01simple下載-XLS代碼,並填寫數據:

$result = oci_parse($connect, $query); 

oci_execute($result); 

while (($row = oci_fetch_array($result, OCI_BOTH)) != false){ 
$columna = 0; 


     foreach ($row as $key => $valor) { 

      $objPHPExcel->getActiveSheet()->setCellValue('A' . $columna, $valor); 


      $columna++; 

     } 


} 

oci_free_statement($result); 
oci_close($connect); 

但電子表格只顯示我的BD的第一個數據,我需要這一切。

enter image description here

而且數據是這樣的:
enter image description here

我怎樣才能打印數據行中的列?

謝謝!

+0

沒關係的工作。我不後排0 復位列我們只是對它進行校對。社區編輯是一個這裏的東西。你介意,如果我最後刪除了關於你的英語的那一點? –

回答

3

MS Excel單元格地址包含列ID和行ID。列ID是字母(AB,C等);行ID是數字(1,2,3等):因此像B3這樣的單元地址是列B和行3。 (你可以在你的圖片中看到)

您使用的是可變$columna,與A相連來定義像A1單元格地址,並增加它的每一個元素,所以你的地址是A1, A2 , A3等。 ...總是列A。所以你所有的數據都會在第一列。 (你也開始0行,不存在

修改代碼,以行和列的工作,給自己一個單元格地址:

$rowNumber = 1; 
while (($row = oci_fetch_array($result, OCI_BOTH)) != false){ 
    $columna = 'A'; 
    foreach ($row as $key => $valor) { 
     $objPHPExcel->getActiveSheet()->setCellValue($columna . $rowNumber, $valor); 
     $columna++; 
    } 
    $rowNumber++; 
} 

開始第1行,每個$行

有更簡單的方法來做到這一點,但除非你能把握單元地址的概念,你有難同Excel文件

+0

是沒有工作給我看錯誤 注意:數組到字符串轉換在/var/www/html/consultaprocesado/PHPExcel_1.8.0_doc/Examples/01simple-download-xls.php在線148致命錯誤:... –

+0

讓我猜是哪一行是148 .....不,我猜不出,我看不到你的代碼,我不知道148行是什麼.....如果你需要幫助,你必須給我們有偶爾的線索,而不是簡單地說它不起作用 –

+0

對不起,我試圖把整個代碼,但在幫助 –