I am using PHPExcel
to generate an xl using php. I am not loading an xl sheet but creating new sheets using
$phpExcel = new PHPExcel();
$phpExcel-&g
You do, of course, need to create/add additional worksheets to be able to change the active sheet: using new PHPExcel() will only create a workbook containing a single sheet.
You can set the active sheet using either the sheet index (sheets are indexed from 0);
$objPHPExcel->setActiveSheetIndex(2);
or by name
$objPHPExcel->setActiveSheetIndexByName('My Second Sheet');
Adding a new sheet using either the createSheet() or addSheet() methods will automatically set that new worksheet to the active worksheet. By default, any new worksheet will be given a name comprising the word "Worksheet" and a number until you use setTitle() to change it.
If you are directly manipulating the xml in workbook.xml
$replace = '#activeTab="\d"#i';
$with = 'activeTab="0"';
$newxmlfile=preg_replace($replace,$with,$newxmlfile); // force activetab to sheet 1
You shouldn't need ByName
. Try just setActiveSheetIndex(2);
.
Add below function into Excel.php class file:
function setActiveSheet($sheetnumber) {
$this->objPHPExcel->setActiveSheetIndex($sheetnumber);
}
then call that function like this :
$phpExcel->setActiveSheet(0);