web-dev-qa-db-fra.com

Comment lire les données d'Excel avec PHPExcel

J'essaie d'importer des données à partir d'une feuille Excel (.xlsx). J'ai trouvé PHPExcel pour importer des données, mais après avoir téléchargé le document et le code source, je ne sais pas quel fichier est important pour moi. J'ai aussi essayé de trouver un document sur ce site mais je n'ai pas trouvé le moyen.

A propos de ma tâche: Lire les données de feuille Excel à partir de la feuille sélectionnée et les insérer dans la table de la base de données.

Donc, je suis vraiment reconnaissant si vous allez me guider comment l'utiliser.

Merci.

5
Manan

Vous pouvez utiliser la bibliothèque PHPExcel pour lire un fichier Excel et insérer les données dans une base de données.

Exemple de code est ci-dessous.

//  Include PHPExcel_IOFactory
include 'PHPExcel/IOFactory.php';

$inputFileName = 'sample.xls';

//  Read your Excel workbook
try {
    $inputFileType = PHPExcel_IOFactory::identify($inputFileName);
    $objReader = PHPExcel_IOFactory::createReader($inputFileType);
    $objPHPExcel = $objReader->load($inputFileName);
} catch(Exception $e) {
    die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
}

//  Get worksheet dimensions
$sheet = $objPHPExcel->getSheet(0); 
$highestRow = $sheet->getHighestRow(); 
$highestColumn = $sheet->getHighestColumn();

//  Loop through each row of the worksheet in turn
for ($row = 1; $row <= $highestRow; $row++){ 
    //  Read a row of data into an array
    $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row,
                                    NULL,
                                    TRUE,
                                    FALSE);
    //  Insert row data array into database here using your own structure
12
Brainy Prb

À partir d’un aperçu rapide de la documentation, utilisez IOFactory pour déterminer automatiquement le format de fichier.

include 'path/to/PHPExcel/IOFactory.php';

// Let IOFactory determine the spreadsheet format
$document = PHPExcel_IOFactory::load('path/to/spreadsheet.xls');

// Get the active sheet as an array
$activeSheetData = $document->getActiveSheet()->toArray(null, true, true, true);

var_dump($activeSheetData);
8
Tserkov

Essayez ceci afin de pouvoir démarrer le processus de développement:

include '.... /PHPexcel/Classes/PHPExcel.php';
    $dataFfile = "C:/tmp/test_data.xls";
    $objPHPExcel = PHPExcel_IOFactory::load($dataFfile);
    $sheet = $objPHPExcel->getActiveSheet();
    $data = $sheet->rangeToArray('A2:AB5523');
    echo "Rows available: " . count($data) . "\n";
    foreach ($data as $row) {
        print_r($row);
    }

Remplacez le chemin d'inclusion par votre chemin d'accès au fichier PHPExcel.php
Remplacez $dataFile par votre fichier Excel
Ajustez également la plage des cellules que vous souhaitez importer.

0
Antoan Milkov