info2gestion

Accueil

PHP

PHPOffice

PHPSpreadsheet

Lecture d'un classeur libreoffice calc - exemple

Dans cet exemple, un classeur libreoffice calc contient des données. Ces données sont affichées avec le bouton ci-dessous



Affichage des données

Affichage des données avec la grille

Script PHP utilisé sur cette page


<?php

require 'vendor/autoload.php'; 
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Ods();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

 $filename = 'classeur_gpaie_c01_v01.ods';
 $spreadsheet = $reader->load($filename);
 $sheet = $spreadsheet->getSheet(0);

 $cellB15 = $sheet->getCell('B15');
 $cellB19 = $sheet->getCell('B19');

 $htmlTable = "";

 // 1ere ligne 1ere colonne
 $highestRow = $sheet->getHighestRow();
 $highestColumn = $sheet->getHighestColumn();

 // Element table
 $htmlTable = "<table>";
 $htmlTable .= "<tr>";

 // Boucle sur les titres des colonnes
 for ($col = 'A'; $col <= $highestColumn; $col++) {
  if ($col == 'A'){
   $htmlTable .= "<th>" . $sheet->getCell($col . '2')->getValue() . "</th>";
  } else {
   $number = $sheet->getCell($col . '2')->getCalculatedValue();
   $nombre_format_francais = number_format($number, 2, ',', ' ');
   $htmlTable .= "<th>" . $nombre_format_francais . "</th>";
  } // if $col == 'A' else 
 } // for = $col = 'A'

 $htmlTable .= "</tr>";

 // Boucle sur les données
 for ($row = 2; $row <= $highestRow; $row++) {

  $htmlTable .= "<tr>";

  for ($col = 'A'; $col <= $highestColumn; $col++) {
   if ($col == 'A'){
    $value = $sheet->getCell($col . $row+1)->getValue();
    $htmlTable .= "<td>" . $value . "</td>";
   } else {
    $value = $sheet->getCell($col . $row+1)->getCalculatedValue();
    $nombre_format_francais = number_format($value, 2, ',', ' ');

    if ($nombre_format_francais <> "0,00") {
     $htmlTable .= "<td>" . $nombre_format_francais . "</td>";
     } else{
       $htmlTable .= "<td>" . "" . "</td>";
    } // if $nombre_format_francais else ...

   } // if $col == 'A' else ...
  } // for $col = 'A' ...
  $htmlTable .= "</tr>";
 } // for $row = 2

 $htmlTable .= "</table>";

 echo $htmlTable;

 echo "<p>B15" . $cellB15 . "</p>";
 echo "<p>B19" . $cellB19 . "</p>";

} // $_SERVER['REQUEST_METHOD']
?>


Ce script php est à la base du script php pour cet exemple. Il peut rester quelques ajustements à y effectuer du fait de l'affichage avec les commentaires. Ces ajustements seront corrigés pour rendre autant que possible ce script fonctionnel.

Pour ce script, l'intelligence artificielle (google gemini) a été utilisée avec des ajustements et des modifications ultérieures. Par exemple pour un format cohérent des nombres avec 2 décimales, quelques opérations à l'intérieur des boucles ont été nécessaires.

Une autre partie qui n'est pas visible dans l'exemple affiché ci-dessus est la gestion de la session avec php.