2012-11-18 12 views

Odpowiedz

11

Można użyć PHPExcel który jest dostępny tutaj: https://phpexcel.codeplex.com/releases/view/119187

Oto co mogę użyć do odczytu albo xls lub xlsx do tablicy:

require_once('/path/to/PHPExcel.php'); 

$filename = "example.xlsx"; 
$type = PHPExcel_IOFactory::identify($filename); 
$objReader = PHPExcel_IOFactory::createReader($type); 
$objPHPExcel = $objReader->load($filename); 

foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { 
    $worksheets[$worksheet->getTitle()] = $worksheet->toArray(); 
} 

print_r($worksheets); 
+0

'$ objPHPExcel = PHPExcel_IOFactory :: load (" test.xlsx ");' Umożliwi to załadowanie pliku i sprawi, że PHPExcel automatycznie wykryje typ pliku. Kod w tej odpowiedzi ręcznie określa program Excel 2007 lub 5, podczas gdy ten kod jest bardziej uniwersalny. [źródło] (https://github.com/PHPOffice/PHPExcel/blob/develop/Documentation/markdown/Overview/10-Reading-and-Writing.md) – Matthew

+1

@Matthew - kilka lat za późno, ale aktualizowanie tej odpowiedzi do autodetekcji Typ pliku. – billynoah

9

Używam tego:

include 'simplexlsx.class.php'; 
$xlsx = @(new SimpleXLSX('myFile.xlsx')); 
$data = $xlsx->rows(); 

Możesz simplexslx z here.

UPDATE

Widocznie powyższy link nie działa już. Możesz teraz użyć this. (Dzięki @Basti)

+2

Link nie działa, ale znalazłem to: https://github.com/shuchkin/simplexlsx dzięki za podpowiedź! – Basti

1

Problem można rozwiązać za pomocą PHPExcel bibliotekę:

$data = []; 

$type = PHPExcel_IOFactory::identify($filepath); 
$objReader = PHPExcel_IOFactory::createReader($type); 

$objPHPExcel = $objReader->load($filepath); 

$rowIterator = $objPHPExcel->getActiveSheet()->getRowIterator(); 
foreach($rowIterator as $row){ 
    $cellIterator = $row->getCellIterator(); 
    foreach ($cellIterator as $cell) { 
     $data[$row->getRowIndex()][$cell->getColumn()] = $cell->getCalculatedValue(); 
    } 
} 

gdzie $ filepath - ścieżka do pliku xls lub xlsx.