Est-il possible d'obtenir les noms de feuille de calcul à partir de 20 MO+ fichiers Excel avec PHPExcel?

Je suis en utilisant PHPExcel de lire des données de fichiers Excel.

Avec le code suivant, je suis capable de lire l'un particulier de la feuille de calcul d'un 3MO fichier Excel en seulement quelques secondes. Fonctionne très bien.

Cependant, j'ai maintenant 27 MO et 88MB Excel fichiers dont j'ai besoin pour obtenir des données. Ils sont tellement gros que même OpenOffice ne peut pas les ouvrir.

J'ai trouvé que je peux utiliser un numéro d'index au lieu d'un nom, lorsque je charge une feuille, mais cela semble incohérent, par exemple, dans un fichier Excel setLoadSheetsOnly(0) m'a donné l' troisième feuille de setLoadSheetsOnly(1) m'a donné un erreur même si il y avait quatre feuilles de calcul dans le fichier. De sorte que semble peu fiables pour une raison quelconque.

Est-il une manière que je peux lire les noms des feuilles de calcul à partir d'un fichier de grande taille afin que je puisse accéder à un seul de ses feuilles de calcul en même temps?

        $objReader = PHPExcel_IOFactory::createReaderForFile("data/" . $file_name);
        $objReader->setLoadSheetsOnly(array($sheet_name));
        $objReader->setReadDataOnly(true);
        $objPHPExcel = $objReader->load("data/" . $file_name);

        echo '<table border="1">';
        for ($row = 1; $row < $number_of_rows; $row++) {
            echo '<tr>';
            for ($column = 0; $column < $number_of_columns; $column++) {
                $value = $objPHPExcel->setActiveSheetIndex(0)->getCellByColumnAndRow($column, $row)->getValue();
                echo '<td>';
                echo $value . '&nbsp;';
                echo '</td>';
            }
            echo '</tr>';
        }
        echo '</table>';
        die;

ADDENDUM:

J'ai trouvé un code qui se rapproche, mais il ne semble pas toujours être exactes, par exemple, ici, il a raté la deuxième feuille de calcul dans un 27 MO fichier:

Est-il possible d'obtenir les noms de feuille de calcul à partir de 20 MO+ fichiers Excel avec PHPExcel?

et ici, il a obtenu seulement la troisième feuille de calcul et raté 3 autres:

Est-il possible d'obtenir les noms de feuille de calcul à partir de 20 MO+ fichiers Excel avec PHPExcel?

$objReader = PHPExcel_IOFactory::createReaderForFile("data/" . $file_name);
$objReader->setLoadSheetsOnly(0);
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("data/" . $file_name);

echo $objPHPExcel->getSheetCount(), ' worksheets<hr/>';
$loadedSheetNames = $objPHPExcel->getSheetNames();
foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
    echo $sheetIndex, ' -> ', $loadedSheetName, '<br />';
}
die;
Watch out pour les noms de feuille de calcul contenant une ! comme cela est utilisé dans Excel lors de la référence à une cellule, y compris le nom de la feuille. par exemple, " DAUER!'!A1 et alors que toute formule à l'aide de références comme cela devrait fonctionner, il y a la possibilité d'erreurs dans le moteur de calcul

OriginalL'auteur Edward Tanguay | 2010-12-28