web-dev-qa-db-fra.com

PHPExcel Vérifier si la fiche existe

J'utilise phpExcel et je ne trouve rien qui permette de vérifier si une feuille existe. Ce que j'aimerais accomplir ressemble à ceci:

if(!$Excel->sheetExists(1)){
    $Excel->createSheet(1);
    $sheet = $Excel->setSheet(1);
}
// Do some stuff with the sheet

Alors. Ma question: Comment puis-je vérifier si une feuille existe?

Modifier

Cela fonctionnerait-il?

try{
    $sheet = $this->Excel->setActiveSheetIndex(1);
}catch(Exception $e){
    $Excel->createSheet(1);
    $sheet = $Excel->setActiveSheetIndex(1);
}
14
Get Off My Lawn

Si vous voulez simplement savoir si une feuille existe à l’index 1, alors

$sheetCount = $Excel->getSheetCount();

retournera un compte des feuilles de calcul. Comme les feuilles sont indexées progressivement à partir de 0, une feuille à l’indice 1 n’existera que si le nombre est égal à 2 ou plus.

Si vous voulez savoir si une feuille nommée existe, alors 

$sheetNames = $Excel->getSheetNames();

retournera un tableau de noms de feuilles (indexé par leur position d'index), et vous pourrez ensuite tester en utilisant in_array ();

Le

$Excel->getSheet()

la méthode lèvera une exception si la feuille demandée (par index) n'existe pas, alors l'envelopper dans un bloc try/catch serait une autre approche

$Excel->getSheetByName()

renvoie une valeur NULL si la feuille de calcul nommée n'existe pas

29
Mark Baker

Vous pouvez vérifier si une feuille existe par son nom avec la méthode sheetNameExists ($ pSheetName) .

3
Chris L

getSheet($sheetNumber) est comment vérifier si une feuille existe.

1
mkaatman

Oui, votre code fonctionnera également:

try {
        $objWorksheet =  $objPHPExcel->setActiveSheetIndex(1); 
}
catch (Exception $e) {
    echo 'Sheet is not exists!';
}
0
Biswadeep Sarkar