2013-10-13 34 views
6

我試圖從下面的代碼中將所有導出到xlsx的工作表的名稱更改。 導出工作正常,但所有工作表的標題只是工作表1,2,3等PHPEXCEL爲所有工作表設置標題

我想從我的PHP數據庫中的「asset_name」列中獲取名稱。

例如, worksheet1-> AAA

我希望它變成: asset1-> AAA

乾杯,

/** 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++; 
    } 

回答

4
mysql_query($query2) 

返回一個結果,所以你試圖將工作表標籤設置爲資源,而不是字符串。你需要從結果集讀取該行來讀取asset_column字符串值,如圖所有MySQL文檔在PHP

編輯

給自己的每個資產名稱的新工作表,使用類似:

$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

我做了幾乎相同的事情,但它不給我一個結果。它只是使用默認名稱在excel中創建一個工作表。我需要一個來自數據庫表的多個工作表,其名稱來自表格。

$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

有一個問題?然後問一個問題,而不是一個答案。 –

相關問題