PHPEXCEL Set title for all sheets

I am trying to change the name of all sheets exported to xlsx from my code below. Export works fine, but the title of all worksheets is just worksheet 1, 2, 3, etc.

I want to grab the names from the "filename" column from my php database.

For example, worksheet1-> aaa

I want this to become: asset1-> aaa

Greetings

/** 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++; } 
+6
source share
2 answers
 mysql_query($query2) 

returns a set of results, so you are trying to set the worksheet label to a resource, not a row. You need to get a row from the result set to read the string value for asset_column , as shown in all MySQL documentation for PHP

EDIT

To provide yourself with a new sheet for each asset name, use something like:

 $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++; } } 
+4
source

I did almost the same thing, but it did not give me a result. it just creates one worksheet in excel with the default name. I need some sheets from database tables with their name from tables.

  $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
source

Source: https://habr.com/ru/post/955886/


All Articles