Reputation: 78
i am using the phpexcel library to export my report to excel file. but i want to have my own excel file and use it with phpexcel. here is the code i used:
public function event_reportexcel($id)
{
$this->load->library('excel');
$this->excel->setActiveSheetIndex(0);
$this->excel->getActiveSheet()->setTitle('test worksheet');
$this->excel->getActiveSheet()->setCellValue('A1', 'This is just some text value');
$this->excel->getActiveSheet()->getStyle('A1')->getFont()->setSize(20);
$this->excel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
$this->excel->getActiveSheet()->mergeCells('A1:D1');
$this->excel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$filename='just_some_random_name.xls'; //save our workbook as this file name
header('Content-Type: application/vnd.ms-excel'); //mime type
header('Content-Disposition: attachment;filename="'.$filename.'"'); //tell browser what's the file name
header('Cache-Control: max-age=0'); //no cache
$objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5');
//force user to download the Excel file without writing it to server's HD
$objWriter->save('php://output');
}
it will put my data in a new excel file, but i need this function to use a excel file as template.
Upvotes: 1
Views: 16033
Reputation: 4545
THis will help u
public function export()
{
$this->load->model('authors_model');
$this->load->library('excel');
$object = new PHPExcel();
$object->setActiveSheetIndex(0);
$table_columns = ['ID', 'first_name', 'last_name', 'Email', 'BirthDate', 'Added'];
$column = 1;
foreach ($table_columns as $dd)
{
$object
->getActiveSheet()
->setCellValueByColumnAndRow($column,1, $dd);
$column++;
}
$employee_data = $this->authors_model->get_all_data();
$row_no = 2 ;
foreach ($employee_data as $value)
{
$object->getActiveSheet()->setCellValueByColumnAndRow(0 ,$row_no,$value->id );
$object->getActiveSheet()->setCellValueByColumnAndRow(1 ,$row_no,$value->first_name );
$object->getActiveSheet()->setCellValueByColumnAndRow(2 ,$row_no,$value->last_name );
$object->getActiveSheet()->setCellValueByColumnAndRow(3 ,$row_no,$value->email );
$object->getActiveSheet()->setCellValueByColumnAndRow(4 ,$row_no,$value->birthdate );
$object->getActiveSheet()->setCellValueByColumnAndRow(5 ,$row_no,$value->added );
$row_no++;
}
ob_end_clean();
header('Content-Type: application/vnd.ms-excel'); //mime type
header("Content-Disposition: attachment; filename=\"filename.xls\"");
header("Cache-Control: max-age=0");
$objWriter = PHPExcel_IOFactory::createWriter($object, 'Excel5');
$objWriter->save('php://output');
}
Upvotes: 0
Reputation: 1058
You can open the file and edit it as you need then save it
$fileType = 'Excel5';
$fileName = 'testFile.xls';
// Read the file
$objReader = PHPExcel_IOFactory::createReader($fileType);
$objPHPExcel = $objReader->load($fileName);
// Change the file
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'Hello')
->setCellValue('B1', 'World!');
// Write the file
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $fileType);
$objWriter->save($fileName);
You can see this post for more details.
Upvotes: 4