2011-07-25 17 views
37

Mam proste tabeli jak:Scalanie wartości komórkowy z PHPExcel - PHP

 

- id 
- first_name 
- last_name 
- email 
- phone 
 

Używam PHPExcel wyeksportować swoje dane w formacie XLS

 

    $rowNumber = 1; 
    while ($row = mysql_fetch_row($result)) { 
     $col = 'A'; 
     foreach($row as $cell) { 
      $objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$cell); 
      $col++; 
     } 
     $rowNumber++; 
    } 
 

Teraz chcę połączyć te dwa Pola first_name & last_name w jednej komórce

próbowałem:

 

$rowNumber = 1; 
    while ($row = mysql_fetch_row($result)) { 
    $objPHPExcel->getActiveSheet()->setCellValue('A'.$rowNumber,$row['id']) 
           ->setCellValue('B'.$rowNumber,$row['first_name']) 
           ->setCellValue('C'.$rowNumber,$row['last_name']);                 
    $rowNumber++; 
} 
 

Ale dostaję błędy i nie działają. Jakaś pomoc?

+1

Jakie są błędy? –

+0

Jared Farrish >> coś takiego: http://dpaste.de/uXbH/raw/ – Cheerio

+0

Wygląda na to, że nagłówki nie działają. Upewnij się, że są one przed jakimkolwiek wyjściem (nawet białe spacje). –

Odpowiedz

88

Jest to specyficzny sposób, aby to zrobić:

$objPHPExcel->getActiveSheet()->mergeCells('A1:C1'); 

Można również użyć:

$objPHPExcel->setActiveSheetIndex(0)->mergeCells('A1:C1'); 

To powinno załatwić sprawę.

+0

Cześć Jahmic, chcę sprawdzić, czy dwa wiersze zostały scalone czy nie. Mam 1000 wierszy i jeśli jakieś dwa są scalone pomiędzy, a następnie zakończ. Czy możesz pomóc? – user3816325

+0

@ user3816325 Nie używałem tych metod przez kilka lat, ale nie mam powodu, aby sądzić, że wszystko jest inne. Twórz kopie zapasowe i daj im szansę. Jeśli twoje pytanie jest bardziej złożone, być może warto postawić nowe pytanie. – Jahmic

18

Spróbuj

$objPHPExcel->getActiveSheet()->mergeCells('A1:C1'); 
0

$this->excel->setActiveSheetIndex(0)->mergeCells("A".($p).":B".($p)); dla dynamicznego łączenia komórek