2014-10-12 19 views
5

Próbuję zaimportować dane z arkusza programu Excel (.xlsx). Znalazłem PHPExcel dla danych importu, ale po pobraniu dokumentu i kodu źródłowego jestem zdezorientowany, który plik jest dla mnie ważny. Próbowałem również znaleźć dokument na tej stronie, ale nie znalazłem drogi.Jak odczytać dane z programu Excel za pomocą z PHPExcel

O moim zadaniu: Przeczytaj dane arkusza Excel z wybranego arkusza i wstaw dane do mojej tabeli bazy danych.

Więc naprawdę wdzięczny, jeśli poprowadzi mnie, jak z niego korzystać.

Dzięki.

Odpowiedz

12

Możesz użyć biblioteki PHPExcel, aby odczytać plik Excel i wstawić dane do bazy danych.

Przykładowy kod znajduje się poniżej.

// 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 
+0

Lepsza odpowiedź niż przenoszenie całego arkusza roboczego do tablicy PHP; iteracja po każdym wierszu po kolei, więc pracujesz tylko z niewielką ilością danych i nie wysadzisz w pamięć limitu pamięci PHP –

+0

Jeśli znasz format danych przed ręką, np. wgrać użytkownika, możesz ustawić '$ highestColumn' na ostatnią kolumnę danych, taką jak' $ highestColumn = 'E'' w moim własnym przypadku. Jest to użyteczne, ponieważ twoja baza danych ma zazwyczaj stałe kolumny. – seyisulu

0

Spróbuj więc można przejść rozpocząć proces rozwoju:

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); 
    } 

Wymień ścieżki zawierają ze swojej drodze do PHPExcel.php
Wymień $dataFile z pliku Excel
także dostosować zakres komórek, które chcesz zaimportować:

8

Od szybkiego przejrzenia dokumentacji, użyj narzędzia IOFactory, aby automatycznie określić t on format pliku.

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); 
Powiązane problemy