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);
}
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
Vous pouvez vérifier si une feuille existe par son nom avec la méthode sheetNameExists ($ pSheetName) .
getSheet($sheetNumber)
est comment vérifier si une feuille existe.
Oui, votre code fonctionnera également:
try {
$objWorksheet = $objPHPExcel->setActiveSheetIndex(1);
}
catch (Exception $e) {
echo 'Sheet is not exists!';
}