2013-10-13 2 views
6

Я пытаюсь изменить имя всех рабочих листов, экспортированных в xlsx, из моего кода ниже. Экспорт работает отлично, но название всех рабочих листов - это только рабочий лист 1, 2, 3 и т. Д.PHPEXCEL Установить заголовок для всех листов

Я хочу захватить имена из столбца «имя_компьютера» из моей базы данных php.

Например, worksheet1-> ааа

я хочу, чтобы он стал: asset1-> ааа

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

ответ

4
mysql_query($query2) 

возвращает результирующий набор, так что вы пытаясь установить метку рабочего листа на ресурс, а не на строку. Вам необходимо выбрать строку из результирующего набора для считывания значения строки для asset_column, как показано во всей документации MySQL для PHP

EDIT

Чтобы дать себе новый лист для каждого имени активов, использовать что-то вроде :

$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

Есть вопрос? Тогда задайте вопрос, а не ответ. –

Смежные вопросы