I have used the PHPExcel library to export data to excel format in my Codeigniter project. It was working fine in my local, but after importing the code into the server, it did not work. It all time displays an error message.
Message: Array and string offset access syntax with curly braces is deprecated
Filename: Shared/String.php
Line Number: 526
I have followed these codes in my Codeigniter Controller to export data to excel.
<?php public function Export() { // create file name $fileName = 'Department-Export-'.time().'.xlsx'; // load excel library $this->load->library('excel'); $ArrayData = $this->db->select('*')->from('department_master')->order_by('id', 'desc')->get()->result_array(); $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); // set Header $objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Name');; // set Row $rowCount = 2; foreach ($ArrayData as $val) { $objPHPExcel->getActiveSheet()->SetCellValue('A' . $rowCount, $val['name']); $rowCount++; } $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $objWriter->save("asset/download_xlsx/".$fileName); // download file header("Content-Type: application/vnd.ms-excel"); redirect(site_url()."asset/download_xlsx/".$fileName); } ?>
How can I fix it?
I have solved it to apply this line to my Codeigniter Controller header. Apply this line to your code.
<?php ob_start(); defined('BASEPATH') OR exit('No direct script access allowed'); class ControllerName extends MY_Controller { // write your code public function Export() { // create file name $fileName = 'Department-Export-'.time().'.xlsx'; // load excel library $this->load->library('excel'); $ArrayData = $this->db->select('*')->from('department_master')->order_by('id', 'desc')->get()->result_array(); $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); // set Header $objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Name');; // set Row $rowCount = 2; foreach ($ArrayData as $val) { $objPHPExcel->getActiveSheet()->SetCellValue('A' . $rowCount, $val['name']); $rowCount++; } $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $objWriter->save("asset/download_xlsx/".$fileName); // download file header("Content-Type: application/vnd.ms-excel"); redirect(site_url()."asset/download_xlsx/".$fileName); } } ?>
Hope it will be helpful for you.
Question and answer is powered by AnsPress.io