phpexcel problem - Printable Version +- CodeIgniter Forums (https://forum.codeigniter.com) +-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20) +--- Forum: Archived Development & Programming (https://forum.codeigniter.com/forumdisplay.php?fid=23) +--- Thread: phpexcel problem (/showthread.php?tid=52652) |
phpexcel problem - El Forum - 06-20-2012 [eluser]Damjan[/eluser] Hi, i am new to Codeigniter. I use PHPExcel library to make excel file, now I want to download file through browser. I have made excel file, and following code try to execute download: $this->load->library('PHPExcel'); $this->load->library('PHPExcel/IOFactory'); $this->load->library('PHPExcel/Writer/Excel2007'); . . . $objPHPExcel->getActiveSheet()->setTitle('Simple'); $objWrite = IOFactory::createWriter($objPHPExcel,'Excel2007'); // HERE ERROR HAPPENING (I think ) header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="30template.xlsx"'); header('Cache-Control: max-age=0'); $objWrite->save('php://output'); BUT error display: Fatal error: Cannot redeclare class Excel2007 in C:\Users\Damjan\Dropbox\Projects\www\PhoneNumber\application\libraries\PHPExcel\Writer\Excel2007.php on line 36 phpexcel problem - El Forum - 06-20-2012 [eluser]MRosenello[/eluser] Can you post the content of Excel2007.php? It looks like you are declaring the same class twice in there. You can only declare a class once. -Mike phpexcel problem - El Forum - 06-20-2012 [eluser]CodeIgniteMe[/eluser] how are you including your Excel2007 library? where is your web root path? phpexcel problem - El Forum - 06-21-2012 [eluser]Damjan[/eluser] [quote author="MRosenello" date="1340214923"]Can you post the content of Excel2007.php? It looks like you are declaring the same class twice in there. You can only declare a class once. -Mike[/quote] I don't make changes to file Excel2007.php except renaming class name to file name, PHPExcel_Writer_Excel2007 to Excel2007. Excel2007 have about 500 line of code. 36. line of code is: class Excel2007 implements PHPExcel_Writer_IWriter [quote author="CodeIgniteMe" date=""]how are you including your Excel2007 library? where is your web root path?[/quote] I have copy Excel2007 to application/libraries/PHPExcel/Writer folder and in my application $this->load->library(‘PHPExcel/Writer/Excel2007’); phpexcel problem - El Forum - 06-21-2012 [eluser]CodeIgniteMe[/eluser] [quote author="Damjan" date="1340264639"][quote author="MRosenello" date="1340214923"]Can you post the content of Excel2007.php? It looks like you are declaring the same class twice in there. You can only declare a class once. -Mike[/quote] I don't make changes to file Excel2007.php except renaming class name to file name, PHPExcel_Writer_Excel2007 to Excel2007. Excel2007 have about 500 line of code. 36. line of code is: class Excel2007 implements PHPExcel_Writer_IWriter [quote author="CodeIgniteMe" date=""]how are you including your Excel2007 library? where is your web root path?[/quote] I have copy Excel2007 to application/libraries/PHPExcel/Writer folder and in my application $this->load->library(‘PHPExcel/Writer/Excel2007’);[/quote] OK., so all you will have to do is change the name of your new class. maybe add underscore on it class Excel_2007 phpexcel problem - El Forum - 06-21-2012 [eluser]Damjan[/eluser] Now I've got following error: Fatal error: Class 'PHPExcel_Writer_Excel2007' not found in C:\Users\Damjan\Dropbox\Projects\www\PhoneNumber\application\libraries\PHPExcel\IOFactory.php on line 141 IOFactory.php: public static function createWriter(PHPExcel $phpExcel, $writerType = '') { // Search type $searchType = 'IWriter'; // Include class foreach (self::$_searchLocations as $searchLocation) { if ($searchLocation['type'] == $searchType) { $className = str_replace('{0}', $writerType, $searchLocation['class']); $classFile = str_replace('{0}', $writerType, $searchLocation['path']); $instance = new $className($phpExcel); // line 141 if ($instance !== NULL) { return $instance; } } } // Nothing found... throw new Exception("No $searchType found for type $writerType"); } phpexcel problem - El Forum - 06-21-2012 [eluser]CodeIgniteMe[/eluser] what is the name of your new Excel2007 class? I think you should both name your class and file to PHPExcel_Writer_Excel2007 and PHPExcel_Writer_Excel2007.php respectively there might be some dependencies to that class in you excel library phpexcel problem - El Forum - 06-21-2012 [eluser]Damjan[/eluser] It's ok, working now. Thanks. phpexcel problem - El Forum - 06-21-2012 [eluser]CodeIgniteMe[/eluser] Great! good to know |