Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3077 → Rev 3474

/trunk/jrest/services/ImportXLS.php
333,14 → 333,14
// le cast en string des nombres permet d'unifier le parsing du retour
// car il n'est destiné qu'à être affiché
$retour = array(
'import_obs_ajoutees' => (string)$obs_ajouts,
'import_images_ajoutees' => (string)$nb_images_ajoutees,
'import_mots_cles_ajoutes' => (string)$nb_mots_cle_ajoutes,
'import_obs_ajoutees' => (string)$obs_ajouts,
'import_images_ajoutees' => (string)$nb_images_ajoutees,
'import_mots_cles_ajoutes' => (string)$nb_mots_cle_ajoutes,
'import_colonnes_non_traitees' => implode(', ', $filtre->exclues)
);
// Ajout d'éventuelles erreurs
if ($this->bilan) {
$retour += array('import_erreurs' => implode("\n", $this->bilan) . "\n");
if ($this->bilan) {
$retour += array('import_erreurs' => implode("\n", $this->bilan) . "\n");
}
// Dans le cas où le client ne sait pas lire le retour d'upload
// on stocke les stats en session pour les appeler plus tard
352,20 → 352,20
die();
}
public function getElement($uid) {
public function getElement($uid) {
if($uid[0] == "template") {
 
$tpl_dir = dirname(__FILE__).DIRECTORY_SEPARATOR.'squelettes'.DIRECTORY_SEPARATOR;
$tpl = $tpl_dir.'modele_import.xls';
 
$lecteur = PHPExcel_IOFactory::createReaderForFile($tpl);
$classeur_tpl = $lecteur->load($tpl);
$lecteur = PHPExcel_IOFactory::createReaderForFile($tpl);
$classeur_tpl = $lecteur->load($tpl);
$feuille_tpl = $classeur_tpl->getActiveSheet();
// Détection de la dernière colonne pour connaitre la position d'ajout des champs étendus
// Si un groupe est demandé
$lettre_colonne_max = $feuille_tpl->getHighestColumn();
$nb_colonne_max = PHPExcel_Cell::columnIndexFromString($lettre_colonne_max);
$nb_colonne_max = PHPExcel_Cell::columnIndexFromString($lettre_colonne_max);
$ligne = 1;
$nb_colonne_en_cours = $nb_colonne_max;
 
381,7 → 381,7
$champ_obl = $feuille_tpl->getCell($lettre_colonne.$ligne)->getValue();
if(!empty($descriptions[$champ_obl])) {
$feuille_tpl->getComment($lettre_colonne.$ligne)->getText()->createTextRun($descriptions[$champ_obl]);
$feuille_tpl->getComment($lettre_colonne.$ligne)->getText()->createTextRun($descriptions[$champ_obl]);
$feuille_tpl->getComment($lettre_colonne.$ligne)->setWidth(400);
}
}
395,11 → 395,11
foreach($champs as $champ) {
$lettre_colonne = PHPExcel_Cell::stringFromColumnIndex($nb_colonne_en_cours);
// Les champs étendus sont préfixés par "ext:" pour ne pas être ignoré lors d'un import
// l'import ignore les noms de colonnes qu'il ne connait pas
// l'import ignore les noms de colonnes qu'il ne connait pas
$feuille_tpl->setCellValue($lettre_colonne.$ligne, 'ext:'.$champ['champ']);
// Ajout de la description dans le commentaire si elle est présente
if(!empty($descriptions[$champ['champ']])) {
$feuille_tpl->getComment($lettre_colonne.$ligne)->getText()->createTextRun($descriptions[$champ['champ']]);
$feuille_tpl->getComment($lettre_colonne.$ligne)->getText()->createTextRun($descriptions[$champ['champ']]);
$feuille_tpl->getComment($lettre_colonne.$ligne)->setWidth(400);
}
409,10 → 409,10
}
// Seul le format xlsx permet l'association de commentaires de colonnes dans PHPExcel
// C'est triste mais bon mais c'est trop pratique pour qu'on s'en passe
header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="'.$nom_fichier.'.xlsx"');
$generateur = PHPExcel_IOFactory::createWriter($classeur_tpl, 'Excel2007');
// C'est triste mais bon mais c'est trop pratique pour qu'on s'en passe
header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="'.$nom_fichier.'.xlsx"');
$generateur = PHPExcel_IOFactory::createWriter($classeur_tpl, 'Excel2007');
$generateur->save('php://output');
exit;
437,16 → 437,16
return $descriptions;
}
public function getRessource() {
return self::getStatsDernierUpload();
public function getRessource() {
return self::getStatsDernierUpload();
}
static function getStatsDernierUpload() {
// renvoi des statistiques du dernier envoi de fichier
// renvoi des statistiques du dernier envoi de fichier
$stats = !empty($_SESSION['upload_stats']) ? $_SESSION['upload_stats'] : null;
header("Content-Type: application/json; charset=utf-8");
echo json_encode($stats);
die();
echo json_encode($stats);
die();
}
 
/* detectionEntete() sert deux rôles:
1131,7 → 1131,7
$cle = $label;
 
if (!empty($cle) && !empty($valeur)) {
$champ_etendu_a_inserer = new ChampEtendu();
$champ_etendu_a_inserer = new ObsEtendue();
$champ_etendu_a_inserer->id = $id_obs;
$champ_etendu_a_inserer->cle = $cle;
$champ_etendu_a_inserer->valeur = $valeur;