Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHPSpreadsheet - How do create a extra tab?

I create in my php code a excel file with one tab and give it a name. The code what i use is this.:

// CREATE PHPSPREADSHEET OBJECT
require "../vendor/autoload.php";
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;

// CREATE A NEW SPREADSHEET + POPULATE DATA
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setTitle('Batch');

But how do i create a second tab with another name?

[solved]

// CREATE A NEW SPREADSHEET + POPULATE DATA
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setTitle('Batch');
// Add some data
$spreadsheet->createSheet();
// Add some data
$spreadsheet->setActiveSheetIndex(1) ->setCellValue('A1', 'world!');
// Rename worksheet
$spreadsheet->getActiveSheet()->setTitle('URL Removed');
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$spreadsheet->setActiveSheetIndex(0);
like image 684
Pascal Avatar asked Feb 17 '19 18:02

Pascal


People also ask

How to add new sheet in PhpSpreadsheet?

Adding a new Worksheet You can add a new worksheet to the workbook using the createSheet() method of the Spreadsheet object.

How can I create multiple sheets in Excel using PHPExcel?

When you first instantiate the $objPHPExcel, it already has a single sheet (sheet 0); you're then adding a new sheet (which will become sheet 1), but setting active sheet to sheet $i (when $i is 0)... so you're renaming and populating the original worksheet created when you instantiated $objPHPExcel rather than the one ...

How do I download PhpSpreadsheet library?

Use composer to install PhpSpreadsheet into your project. Or also download the documentation and samples if you plan to use them. A good way to get started is to run some of the samples. Don't forget to download them via --prefer-source composer flag.


1 Answers

You can add an extra tab like this:

$spreadsheet->createSheet();
// Zero based, so set the second tab as active sheet
$spreadsheet->setActiveSheetIndex(1)
$spreadsheet->getActiveSheet()->setTitle('Second tab');

If you like, you can read more here.

like image 156
Bert H Avatar answered Sep 19 '22 03:09

Bert H