Autor Zpráva
Ota
Profil *
Dobrý den, uz pár dnů řeším zapeklitý ořísek a potřeboval bych menší radu, nebo spíš nasměrování správným směrem.
Do Excelu importuju data pomocí php z databáze. Data mám rozdělené na povinné údaje a nepovinné údaje.

Příklad ( A1=> buňka v excelu ):
//povinné údaje

(A1)Jméno:      $jmeno(B1)
(A2)Přijmení:   $prijmeni(B2)

// nepovinné údaje 

(A3)Telefon: $telefon(B3)
(A4)Email: $email(B4)


Nepovinné údaje mám ošetřeny podmínkou, díky které se nevyplněný údaje nezobrazí. To znamena, že pokud uživatel nevyplní třeba telefon vypíše se jen:
//povinné údaje

(A1)Jméno:      $jmeno(B1)
(A2)Přijmení:   $prijmeni(B2)

// nepovinné údaje 

prázdný řádek(A3)(B3)
(A4)Email: $email(B4)


řesím to podmínkou:
 if ($telefon != ""){
echo "Telefon: $Telefon<br>";
}

A teď právě příchází problém, se kterým bych potřeboval poradit. Vznikne tam volný řádek a já bych potřeboval "email" posunout o řádek výše - tedy do buněk A3,B3 .

- jakým stylem to udělat aby tam ten prázdný řádek nebyl? Díky za rady
Ota
Profil *
Ta podmínka je přeně takhle:
if ($web != ""){
	$objPHPExcel->setActiveSheetIndex(0)
			->setCellValue("A3", "Telefon:")
			->setCellValue("B3", "$telefon");
}
xmark
Profil
Jestli ten soubor vytváříš a je prázdný, tak počítej řádky a při každém výstupu inkrementuj.
Jestli ten soubor už existuje a ty ho přepisuješ, bude to horší.
Ota
Profil *
ten soubor vytvářím zcela nový. "inkrementuj" - můžeš to prosím vysvětlit podrobněji? Předpokládám, že je to asi něco jako, že se vytvoří počítadlo a při každé splněné podmínce výstupu se přičte i++ ?
xmark
Profil
Ota:
že se vytvoří počítadlo a při každé splněné podmínce výstupu se přičte i++ ?

Přesně tak.
Ota
Profil *
Můžu tě ještě poprosit o navedení správným směrem? Jsem na úrovni, že si kód upravím, ale napsat ho z hlavy, aby byl použitelný bohužel nedokážu.

$pocitadlo = "3";

if ($telefon != ""){
    $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue("A3", "Telefon:")
            ->setCellValue("B3", "$telefon");
            
            i++;
}

if ($email != ""){
    $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue("A3", "Email:")
            ->setCellValue("B3", "$email");
         
            i++;
}



Jakým stylem to tam přesně zakomponovat? Moc děkuji.
xmark
Profil
$pocitadlo = 3;

if ($telefon != ""){
    $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue("A".$pocitadlo, "Telefon:")
            ->setCellValue("B".$pocitadlo, $telefon);
            
            $pocitadlo++;
}


$pocitadlo opraveno na číslo. Nerozumím tomu, proč se tolik lidí snaží používat ve vyloženě číselných proměnných string.
Druhý dodatek: setActiveSheetIndex(0) určitě není třeba provádět při každém řádku opakovaně.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0