2013-10-13 11 views
6

Próbuję zmienić nazwę wszystkich arkuszy eksportowanych do XLSX z mojego kodu poniżej. Eksport działa dobrze, ale tytuł wszystkich arkuszy jest po prostu arkuszem roboczym 1, 2, 3 itd.PHPEXCEL Ustaw tytuł dla wszystkich arkuszy

Chcę pobrać nazwy z kolumny "asset_name" z mojej bazy danych php.

Np worksheet1-> aaa

chcę go stać: asset1-> aaa

Cheers,

/** Query 1.0 */ 
    $query = "SELECT * FROM asset_register"; 
    $query2 = "SELECT asset_name FROM asset_register"; 

    if ($result = mysql_query($query) or die(mysql_error())) { 

    /** Create a new PHPExcel object 1.0 */ 
$objPHPExcel = new PHPExcel(); 
$objPHPExcel->getActiveSheet()->setTitle('Data'); 
} 
/** Loop through the result set */ 
$rowNumber = 1; //start in row 1 

$objPHPExcel->removeSheetByIndex(0); 
while ($row = mysql_fetch_row($result)) { 

    $newsheet = $objPHPExcel->createSheet(); 
    $col = 'A'; // start at column A 

    $objPHPExcel->getActiveSheet()->setTitle(mysql_query($query2)); 

    foreach($row as $cell) { 
     $newsheet->setCellValue($col.$rowNumber,$cell); 
     $col++; 
    } 

Odpowiedz

4
mysql_query($query2) 

zwraca zestaw wyników, więc jesteś próbując ustawić etykietę arkusza roboczego na zasób, a nie na łańcuch. Trzeba pobrać wiersz z wynikowego aby odczytać wartość ciągu o asset_column jak pokazano w całej dokumentacji MySQL dla PHP

EDIT

Aby dać sobie nowy arkusz dla każdej nazwy aktywów, użyć czegoś podobnego :

$prevAssetName = NULL; 
$objPHPExcel->removeSheetByIndex(0); 
while ($row = mysql_fetch_row($result)) { 
    if ($row['asset_name'] !== $prevAssetName) { 
     $newsheet = $objPHPExcel->createSheet(); 
     $newsheet->setTitle($row['asset_name']); 
     $prevAssetName = $row['asset_name']; 
    } 

    $col = 'A'; // start at column A 
    foreach($row as $cell) { 
     $newsheet->setCellValue($col.$rowNumber,$cell); 
     $col++; 
    } 
} 
0

Zrobiłem prawie to samo, ale to nie daje mi wyniku. tworzy się tylko jeden arkusz roboczy w programie Excel z domyślną nazwą. Potrzebuję wiele arkuszy roboczych z tabel bazy danych z nazwą z tabel.

$query = "select name from campaigns WHERE clients_id='77'"; 



$result = mysqli_query($con,$query) or die(mysqli_connect_error()); 


$objPHPExcel = new PHPExcel(); 

$prevName = NULL; 

$objPHPExcel->removeSheetByIndex(0); 

while ($row = mysqli_fetch_row($result)){ 



if ($row['name'] !== $prevName) { 



$newsheet = $objPHPExcel->createSheet(); 





$newsheet->setTitle($row['name']); 

$prevName=$row['name']; 

} 

}

+0

Masz pytanie? Zadaj pytanie, a nie odpowiedź. –

Powiązane problemy