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.