Bernard Siaud alias Troumad a écrit :
Bernard Siaud alias Troumad a écrit :
Bonjour
Qui a déjà essayer Class: ods-php (
http://www.phpclasses.org/browse/package/4398.html ) ?
Je voulais juste lire dans mon fichier ods, je n'ai pas trouvé cette
possibilité dans le programme donné :(
Mais en rajoutant cette fonction à la classe ods :
function donnecellule($sheet,$row,$cell) {
//$this->sheets[$sheet]['rows'][$row][$cell]['attrs']['OFFICE:VALUE']
= $value;
return $this->sheets[$sheet]['rows'][$row][$cell]['value'];
}
Tant que j'y suis j'ai rajouté encore deux fonctions pour récupérer le
nombre de lignes (utile) et de colonnes (sans intérêt)
function donnecellule($sheet,$row,$cell)
{
if
(isset($this->sheets[$sheet]['rows'][$row][$cell]['value'])) /* pour
éviter les erreurs si la case est vide) */
return $this->sheets[$sheet]['rows'][$row][$cell]['value'];
else
return;
}
/*function donnecol($sheet,$row)
{
return count($this->sheets[$sheet]['rows'][$row]);
} sans intérêt donne 1024, et il peut y avoir des cases
pleines après des cases vides */
function donneligne($sheet)
{
return count($this->sheets[$sheet]['rows']);
}
Et pour finir, je corrige le problème généré avec les accents (perte des
caractères avant le premier accent), deux fonctions sont à corriger dans
le paquet fourni :
function endElement($parser, $tagName) {
global $globaldata;
$cTagName = strtolower($tagName);
if($cTagName == 'table:table') {
$this->currentSheet++;
$this->currentRow = 0;
} elseif($cTagName == 'table:table-row') {
$this->currentRow++;
$this->currentCell = 0;
} elseif($cTagName == 'table:table-cell') {
$this->currentCell++;
$this->repeat = 0;
}
$globaldata = "";
}
function characterData($parser, $data)
{
global $globaldata; // à cause des accents !
if ($globaldata != "")
{
$globaldata = $globaldata . $data;
}
else
{
$globaldata = $data;
}
if($this->lastElement == 'table:table-cell')
{
$this->sheets[$this->currentSheet]['rows'][$this->currentRow][$this->currentCell]['value']
= $globaldata;
if($this->repeat > 0)
{
for($i=0;$i<$this->repeat;$i++)
{
$cnum = $this->currentCell - ($i+1);
$this->sheets[$this->currentSheet]['rows'][$this->currentRow][$cnum]['value']
= $globaldata;
}
}
}
}
--
Amicalement vOOotre, Troumad Alias Bernard SIAUD, http://troumad.org
N'envoyez que des documents avec des formats ouverts, comme
http://fr.openoffice.org
Adresse electronique speciale liste
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]