IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

Office 365 - Jasvascript - VBA - Alternatives PHP


Sujet :

Contribuez

  1. #1
    barpasc
    Invité(e)
    Par défaut Office 365 - Jasvascript - VBA - Alternatives PHP
    Bonjour,

    Comme il est impossible que plusieurs utilisateurs accèdent simultanément à un classeur excel qui contient des macros VBA ou même sans macro, la synchronisation des données peut poser des difficultés... dans le cadre d'un petit développement web, j'ai trouvé une librairie php "phpspreadsheet" qui permet d'écrire dans des classeurs excel xml (xlsx, xlsm...) et ods, d'utiliser une grande partie des fonctions excel. Cette librairie contient également des fonctions spécifiques aux feuilles de calculs et également d'utiliser php comme un langage de macro pour faire des boucles sur des plages de cellules, d'accéder au format. C'est un peu brut comparé à VBA mais comparé à javascript, c'est sans commune comparaison en terme de simplicité (pas besoin de considérer les fonctions synchrones et asynchrones...).

    Je pense que ça peut être une bonne alternative pour des développements spécifiques où VBA ne peut pas s'appliquer. Avec PHP, il est même possible d'utiliser des classeurs Excel comme base de données (c'est beaucoup plus simple de maintenir des classeurs excel que de mettre à jour une ou plusieurs tables dans une base de données). Bref, que des bons points en dehors du fait qu'on aborde un développement web et que ça implique d'ouvrir un port http/https en dehors d'un réseau local, de gérer un serveur et les risques liés aux failles de sécurité. Office 365, Powerapps peuvent être considérés comme plus sûre contre le fait que les données sont hébergées sur des serveurs microsoft... Mais il me semble que les risques peuvent être atténués avec un vpn ou connexion citrix ou autre...

    Avez-vous une expérience sur cette librairie?
    Dernière modification par barpasc ; 21/10/2021 à 17h07.

  2. #2
    barpasc
    Invité(e)
    Par défaut
    j'ajoute ci-dessous un exemple pour montrer la simplicité (première mise en oeuvre)

    Ci-dessous, c'est pour créer un classeur

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    	require 'vendor/autoload.php';
     
    	use PhpOffice\PhpSpreadsheet\Spreadsheet;
    	use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
     
    	$spreadsheet = new Spreadsheet();
    	$sheet = $spreadsheet->getActiveSheet();
     
    	$sheet->setCellValue('A1', 'Nom');
    	$sheet->setCellValue('C1', $_SESSION['fname']);
     
    	$sheet->setCellValue('A2', 'prénom');	
    	$sheet->setCellValue('C2', $_SESSION['lname']);	
     
    	$sheet->setCellValue('A4', 'Ville de départ');	
    	$sheet->setCellValue('C4', $_SESSION['frm_depart']);
     
    	$sheet->setCellValue('A5', 'Ville arrivée');		
    	$sheet->setCellValue('C5', $_SESSION['frm_dest']);
     
    	$writer = new Xlsx($spreadsheet);
    	$writer->save('DemandeDeVoyage.xlsx');
    	?>

    là, c'est pour travailler sur un classeur existant

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    	<?php
    	require 'vendor/autoload.php';
     
    	$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader("Xlsx");
    	$spreadsheet = $reader->load('Etat_de_frais.xlsx');
     
    	$sheet = $spreadsheet->getActiveSheet();
    	//$last_row = (int) $sheet->getHighestRow();
    	//$new_row = $last_row+1;
     
    	$sheet->setCellValue('A5', $_SESSION['fname']);
    	$sheet->setCellValue('B5', $_SESSION['lname']);
     
    	$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, "Xlsx");
    	$writer->save('PSL_Etat_de_frais.xlsx');
     
    	$filename = 'Etat_de_frais.xlsx';
    	?>

    toute la doc de cette librairie que je viens de découvrir sur ce lien
    Dernière modification par Invité ; 21/10/2021 à 19h30. Motif: Coloration syntaxique [CODE=php] … [/CODE]

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/04/2020, 22h22
  2. Réponses: 4
    Dernier message: 07/06/2019, 09h36
  3. VBA sous Office 365
    Par LeNig dans le forum VBA Word
    Réponses: 2
    Dernier message: 10/01/2018, 15h58
  4. [AC-2016] Etat - Total somme champs cachés en VBA - Absence de résultat - Office 365
    Par tomgalileo dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/12/2017, 13h03
  5. [2013] Office 365 | Mode Offline & VBA
    Par berapard dans le forum Microsoft Office
    Réponses: 1
    Dernier message: 23/03/2014, 20h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo