Search code examples
phparraysexcelphpexcel

PHPexcel array values to column


I have a problem filling columns with array values with PHPexcel i got my query results into arrays. Column A,B,C... not rows !

while (($red = pg_fetch_assoc($resultID))) {
$nivelacija[] = $red ['nivelacija'];
$dokument[] = $red ['dokument'];
$sifra[] = $red ['sifra'];
$naziv[] = $red ['naziv'];
$kol[] = $red ['kol'];
$pdv[] = $red ['pdv'];
$datum[] = $red ['datum'];
$stara[] = $red ['stara'];
$nova[] = $red ['nova'];
$marza[] = $red ['marza'];
$razlika[] = $red ['razlika'];
$zaduzenje[] = $red ['zaduzenje'];

    }

I have tried doing it like

    for ($i = 1; $i <= 10; $i++) {  
$objPHPExcel->getActiveSheet()->fromArray($nivelacija, null, 'A' . $i);
}

but no success, looks like fromArray function can only target specific cell. So i have tried changing to this

for ($i = 1 , $vrednost=0; $i <= 50; $i++ , $vrednost++ ) {
$objPHPExcel->getActiveSheet()->setCellValue('A' .$i, "$nivelacija[$vrednost]" ); }

but like this I get results in Column A but everywhere it writes Array(0) to Array (49)

I have tested this it works when I write "$nivelacija[0]" it writes value to targeted column.

I have no idea how to get my array values for each array to a diffrent column, all i have managed to do is to export it to a row but that just doesnt do the job for me.

Can i get somehow pg query directly to excel without arrays ? Even so i would like to solve array to column problem.

EDITS:

result of var_dump ($nivelacija);

array(8) { [0]=> string(8) "NMP03945" [1]=> string(8) "NMP03944" [2]=> string(8) "NMP03943" [3]=> string(8) "NMP03942" [4]=> string(8) "NMP03942" [5]=> string(8) "NMP03942" [6]=> string(8) "NMP03941" [7]=> string(8) "NMP03940" } 

It has only 8 values cause the date is selected for only 1 day. It suppose to be used monthly withunknown numbers of values

----Added $sve array

$sve = array($nivelacija, $dokument, $sifra, $naziv, $kol, $pdv, $datum, $stara, $nova, $marza, $razlika, $zaduzenje);

result of var_dumping

array(12) { [0]=> array(8) { [0]=> string(8) "NMP03945" [1]=> string(8) "NMP03944" [2]=> string(8) "NMP03943" [3]=> string(8) "NMP03942" [4]=> string(8) "NMP03942" [5]=> string(8) "NMP03942" [6]=> string(8) "NMP03941" [7]=> string(8) "NMP03940" } [1]=> array(8) { [0]=> string(8) "RNB15269" [1]=> string(8) "RNB15266" [2]=> string(8) "RNB15264" [3]=> string(8) "RNB15261" [4]=> string(8) "RNB15261" [5]=> string(8) "RNB15261" [6]=> string(8) "RNB15262" [7]=> string(8) "RNB15255" } [2]=> array(8) { [0]=> string(7) "0670723" [1]=> string(7) "4610602" [2]=> string(7) "4610800" [3]=> string(7) "1011910" [4]=> string(7) "4320350" [5]=> string(7) "0291415" [6]=> string(7) "2631463" [7]=> string(7) "4610513" } [3]=> array(8) { [0]=> string(40) "Gree Viola Profi inverter Wifi klima 18k" [1]=> string(16) "Matrix HDMI 1.5m" [2]=> string(31) "CCP-USB2-AMBM-10 USB Printer 3m" [3]=> string(28) "Green PC G1840/H81/4GB/320GB" [4]=> string(21) "HP LaserJet Pro M102a" [5]=> string(31) "Monitor 19 Philips 193V5LSB2/10" [6]=> string(25) "Maxell speedboat USB 16GB" [7]=> string(20) "PC-186 naponski kabl" } [4]=> array(8) { [0]=> string(1) "1" [1]=> string(1) "3" [2]=> string(1) "1" [3]=> string(1) "1" [4]=> string(1) "1" [5]=> string(1) "1" [6]=> string(1) "1" [7]=> string(1) "1" } [5]=> array(8) { [0]=> string(2) "20" [1]=> string(2) "20" [2]=> string(2) "20" [3]=> string(2) "20" [4]=> string(2) "20" [5]=> string(2) "20" [6]=> string(2) "20" [7]=> string(2) "20" } [6]=> array(8) { [0]=> string(10) "2017-11-18" [1]=> string(10) "2017-11-18" [2]=> string(10) "2017-11-18" [3]=> string(10) "2017-11-18" [4]=> string(10) "2017-11-18" [5]=> string(10) "2017-11-18" [6]=> string(10) "2017-11-18" [7]=> string(10) "2017-11-18" } [7]=> array(8) { [0]=> string(10) "94990.0000" [1]=> string(8) "280.0000" [2]=> string(8) "290.0000" [3]=> string(10) "22990.0000" [4]=> string(9) "9990.0000" [5]=> string(9) "9990.0000" [6]=> string(9) "1190.0000" [7]=> string(8) "290.0000" } [8]=> array(8) { [0]=> string(10) "94000.0000" [1]=> string(8) "200.0000" [2]=> string(8) "150.0000" [3]=> string(10) "22000.0000" [4]=> string(9) "9500.0000" [5]=> string(9) "8700.0000" [6]=> string(9) "1050.0000" [7]=> string(8) "250.0000" } [9]=> array(8) { [0]=> string(7) "-1.0422" [1]=> string(8) "-28.5714" [2]=> string(8) "-48.2759" [3]=> string(7) "-4.3062" [4]=> string(7) "-4.9049" [5]=> string(8) "-12.9129" [6]=> string(8) "-11.7647" [7]=> string(8) "-13.7931" } [10]=> array(8) { [0]=> string(9) "-990.0000" [1]=> string(8) "-80.0000" [2]=> string(9) "-140.0000" [3]=> string(9) "-990.0000" [4]=> string(9) "-490.0000" [5]=> string(10) "-1290.0000" [6]=> string(9) "-140.0000" [7]=> string(8) "-40.0000" } [11]=> array(8) { [0]=> string(4) "-990" [1]=> string(4) "-240" [2]=> string(4) "-140" [3]=> string(4) "-990" [4]=> string(4) "-490" [5]=> string(5) "-1290" [6]=> string(4) "-140" [7]=> string(3) "-40" } } 

Solution

  • ok i found out best solution

    $row = 4; // 1-based index
    while($row_data = pg_fetch_assoc($resultID)) {
        $col = 0;
        foreach($row_data as $key=>$value) {
            $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value);
            $col++;
        }
        $row++;
    }
    

    and its working fine thanks for help