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.