data-import
data-import copied to clipboard
ExcelWriter unwanted Worksheet (feature request)
When using the excelWriter class and naming the worksheet:
$writer = new ExcelWriter($file,'Named Sheet');
The resulting Excel file includes an empty worksheet called 'worksheet' to the left of 'Named Sheet'.
In my file explorer, the preview is showing the empty 'worksheet'
Can you expose a method to remove it ? In the phpoffice/phpexcel the function is described:
$sheetIndex = $objPHPExcel->getIndex(
$objPHPExcel->getSheetByName('Worksheet 1')
);
$objPHPExcel->removeSheetByIndex($sheetIndex);
The additional worksheet is created automatically in the construct of the PHPExcel class. The issue can be solved editing the function 'prepare' in the ExcelWriter class.
public function prepare()
{
$reader = PHPExcel_IOFactory::createReader($this->type);
if ($reader->canRead($this->filename)) {
$this->excel = $reader->load($this->filename);
} else {
$this->excel = new PHPExcel();
/********* Fix start *********/
if(null !== $this->sheet && !$this->excel->sheetNameExists($this->sheet))
{
$this->excel->removeSheetByIndex(0);
}
/********* Fix end *********/
}
if (null !== $this->sheet) {
if (!$this->excel->sheetNameExists($this->sheet)) {
$this->excel->createSheet()->setTitle($this->sheet);
}
$this->excel->setActiveSheetIndexByName($this->sheet);
}
return $this;
}
A pull request has been opened: https://github.com/ddeboer/data-import/pull/273