Je viens d'écrire ça par ennui. Si vous aimez les extensions, n'oubliez pas de m'en envoyer une copie Haha, merci
ps : Le test n'est pas efficace, haha~~~
[email protected] Copiez le PHP. contenu dans le presse-papiers
Code PHP :
<?php
/**
*Classe d'opération Excel basée sur COM (PHP5.x)
*PHPer : TTR
*Date :[2007-05-24]
*Version : 1.0.0
*Blog :[url]http://www.Gx3.cn[/url] [url]http://Gx3.cn[/url]
*QQ :252319874
*/
classe Excel
{
statique $instance=null ;
privé $excel=null ;
privé $classeur=null ;
privé $workbookadd=null ;
privé $feuille de travail=null ;
privé $worksheetadd=null ;
privé $sheetnum=1 ;
private $cells=array();
private $fields=array();
lignes maximales $ privées ;
$maxcols privés ;
private $filename;
//Constructeur
fonction privée Excel()
{
$this->excel = new COM("Excel.Application") ou die("Did Not Connect");
}
//Entrée de classe
fonction statique publique getInstance()
{
if(null == self::$instance)
{
self::$instance = new Excel();
}
return self::$instance;
}
//Définir l'adresse du fichier
fonction publique setFile($filename)
{
return $this->filename=$filename;
}
//Ouvrir le fichier
fonction publique Ouvert()
{
$this->workbook=$this->excel->WorkBooks->Open($this->filename);
}
//Définir la feuille
fonction publique setSheet($num=1)
{
si ($num>0)
{
$this->sheetnum=$num;
$this->worksheet=$this->excel->WorkSheets[$this->sheetnum];
$this->maxcols=$this->maxCols();
$this->maxrows=$this->maxRows();
$this->getCells();
}
}
//Récupérez toutes les valeurs de la table et écrivez-les dans le tableau
fonction privée getCells()
{
pour($i=1;$i<$this->maxcols;$i++)
{
pour($j=2;$j<$this->maxrows;$j++)
{
$this->cells[$this->worksheet->Cells(1,$i)->value][]=(string)$this->worksheet->Cells($j,$i)->value;
}
}
renvoie $this->cellules ;
}
//Retourne le tableau du contenu de la table
fonction publique getAllData()
{
renvoie $this->cellules ;
}
//Renvoie le contenu de la cellule spécifié
fonction publique Cell ($row,$col)
{
return $this->worksheet->Cells($row,$col)->Value ;
}
//Obtenir le tableau des noms de champs de table
fonction publique getFields()
{
pour($i=1;$i<$this->maxcols;$i++)
{
$this->fields[]=$this->worksheet->Cells(1,$i)->value ;
}
renvoie $this->fields ;
}
//Modifier le contenu de la cellule spécifiée
fonction publique editCell($row,$col,$value)
{
si($this->workbook==null || $this->worksheet==null)
{
echo "Erreur : ne s'est pas connecté !" ;
}autre{
$this->worksheet->Cells($row,$col)->Value=$value;
$this->workbook->Save();
}
}
//Modifier une ligne de données
fonction publique editOneRow($row,$arr)
{
si($this->workbook==null || $this->worksheet==null || $row>=2)
{
echo "Erreur : ne s'est pas connecté !" ;
}autre{
si(count($arr)==$this->maxcols-1)
{
$i=1 ;
foreach($arr comme $val)
{
$this->worksheet->Cells($row,$i)->Value=$val;
$i++;
}
$this->workbook->Save();
}
}
}
//Obtenir le nombre total de colonnes
fonction privée maxCols()
{
$i=1 ;
tandis que (vrai)
{
if(0==$this->feuille de calcul->Cells(1,$i))
{
retourner $i ;
casser;
}
$i++;
}
}
//Obtenir le nombre total de lignes
fonction privée maxRows()
{
$i=1 ;
tandis que (vrai)
{
if(0==$this->feuille de calcul->Cellules($i,1))
{
retourner $i ;
casser;
}
$i++;
}
}
//Lire les données de la ligne spécifiée
fonction publique getOneRow($row=2)
{
si($ligne>=2)
{
pour($i=1;$i<$this->maxcols;$i++)
{
$arr[]=$this->feuille de calcul->Cellules($row,$i)->Valeur ;
}
retourner $arr;
}
}
//Ferme l'objet
fonction publique Fermer()
{
$this->excel->WorkBooks->Fermer();
$this->excel=null ;
$this->workbook=null ;
$this->worksheet=null ;
self::$instance=null;
}
};
/*
$excel = nouveau COM("Excel.Application");
$workbook = $excel->WorkBooks->Open('D:\Apache2\htdocs\wwwroot\MyExcel.xls');
$feuille de travail = $excel->WorkSheets(1);
echo $worksheet->Cells(2,6)->Value ;
$excel->WorkBooks->Fermer();
*/
$excel=Excel::getInstance();
$excel->setFile("D:\Apache2\htdocs\wwwroot\MyExcel.xls");
$excel->Ouvrir();
$excel->setSheet();
pour($i=1;$i<16;$i++ )
{
$arr[]=$i;
}
//$excel->editOneRow(2,$arr);
print_r($excel->getAllData());
$excel->Fermer()
;