'.xls', 'Excel2007' => '.xlsx', ); protected $assoc = array(); protected $values = array(); /** * * Enter description here ... * @param string $modele * Nom du modèle * @param string $mode * Type de fichier excel pour l'ecriture (Excel5 | Excel2007) */ public function __construct($modele = '', $mode = 'Excel5') { $this->path = APPLICATION_PATH . '/../cache/liasse/'; if (!is_dir($this->path)){ mkdir($this->path); } $this->modele = $modele; if (empty($this->modele)){ $this->modele = 'bdf_liasse_template'; } $this->mode = $mode; } public function dataModel($siren, $raisonSociale, $values) { switch($this->modele) { case 'bdf_liasse_template': //Ajout champs spéciaux $values['TEXTE_SIRET'] = 'Siret : '.$siren; $values['TEXTE_RS'] = 'Société : '.$raisonSociale; $values['TEXTE_DATEN'] = 'Date de clôture : le ' . substr($values['DATE_CLOTURE'],6,2) . '/' . substr($values['DATE_CLOTURE'],4,2) . '/' . substr($values['DATE_CLOTURE'],0,4) . ' sur ' . $values['DUREE_MOIS'] . ' mois'; break; //Bilan Normal Cerfa case 'liasse_2050': $values['TEXTE_SIRET'] = $siren; $values['TEXTE_RS'] = $raisonSociale; $values['TEXTE_DATEN'] = substr($values['DATE_CLOTURE'],6,2) . '/' . substr($values['DATE_CLOTURE'],4,2) . '/' . substr($values['DATE_CLOTURE'],0,4); $values['TEXTE_DATEN1'] = substr($values['DATE_CLOTURE_PRE'],6,2) . '/' . substr($values['DATE_CLOTURE_PRE'],4,2) . '/' . substr($values['DATE_CLOTURE_PRE'],0,4); $values['TEXTE_DUREEN'] = $values['DUREE_MOIS']; $values['TEXTE_DUREEN1'] = $values['DUREE_MOIS_PRE']; break; //Bilan Simplifié Cerfa case 'liasse_2033': $values['TEXTE_SIRET'] = $siren; $values['TEXTE_RS'] = $raisonSociale; $values['TEXTE_DATEN'] = substr($values['DATE_CLOTURE'],6,2) . '/' . substr($values['DATE_CLOTURE'],4,2) . '/' . substr($values['DATE_CLOTURE'],0,4); $values['TEXTE_DATEN1'] = substr($values['DATE_CLOTURE_PRE'],6,2) . '/' . substr($values['DATE_CLOTURE_PRE'],4,2) . '/' . substr($values['DATE_CLOTURE_PRE'],0,4); $values['TEXTE_DUREEN'] = $values['DUREE_MOIS']; $values['TEXTE_DUREEN1'] = $values['DUREE_MOIS_PRE']; break; } //Association $dataAssoc = parse_ini_file(realpath(dirname(__FILE__)).'/liassexls/'.$this->modele.'.ini', true); $assoc = array(); foreach($dataAssoc as $sheet => $dataCell) { foreach($dataCell as $key => $cell) { $assoc[$key] = array($sheet, $cell); } } $this->assoc = $assoc; $this->values = $values; } public function dataFile($file) { require_once 'Vendors/phpexcel/PHPExcel.php'; $objPHPexcel = PHPExcel_IOFactory::load(realpath(dirname(__FILE__)).'/liassexls/'.$this->modele.'.xls'); foreach( $this->assoc as $key => $position ) { $sheet = $position[0]; $cell = $position[1]; if (array_key_exists($key, $this->values)) { $objWorksheet = $objPHPexcel->getSheet($sheet); $objWorksheet->getCell($cell)->setValue($this->values[$key]); } /* else { $objWorksheet = $objPHPexcel->getSheet($sheet); $objWorksheet->getCell($cell)->setValue('_'); //echo "La clé $key n'a pas de valeur!
"; } */ } $objPHPexcel->setActiveSheetIndex(0); $objWriter = PHPExcel_IOFactory::createWriter($objPHPexcel, $this->mode); $objWriter->save($this->path.'/'.$file); } } ?>