2012-01-24 5 views
5

Witam Chcę przetworzyć plik Excela za pomocą Zend Framework. Poszedłem do Zend Developer Zone i znalazłem rozwiązanie do pobrania phpexcelreader. Pobrałem zestaw kodu projektu na localhost i uruchomić kod. Kiedy treid aby odczytać plik .xlsx generuje błądNazwa pliku feed1.xls nie jest czytelna w php

The filename feed1.xlsx is not readable 

I zapisany plik w formacie .xls i uruchomić kod analizowany plik pomyślnie. Teraz chcę to wdrożyć w moim projekcie opracowanym w Zend framework. Stworzyłem model, aw moim projekcie i require_once ed excelreader na górze mojego projektu w ten sposób.

require_once 'Excelreader/Excel/reader.php'; 
class ExcelreaderModel extends Zend_Db_Table 
{ 
function readFile() 
{ 
    $data = new Spreadsheet_Excel_Reader(); 

    // Set output Encoding. 
    $data->setOutputEncoding('CP1251'); 

    //$data->read('Excelreader/Excel/feed1.xls'); 
    $data->read('feed1.xls'); 
    echo '<pre>'; 
    print_r($data); 
    echo '</pre>'; 
} 
} 

Zadzwoniłem do tej funkcji modelu w moim kontrolerze. Ale generuje ten sam błąd, który znalazłem na localhost przy użyciu plików .xlsx. Ale czytam plik .xls, który jest parsowany przez kod działający w prostym projekcie na localhost.Jestem również uruchamiany zend framework na lokalnym.

Co jest nie tak w moim kodzie? Czy jest jakiś sposób na wykonanie tego samego zadania?

+0

Jeśli używasz Spreadsheet_Excel_Reader, wówczas znacznik phpexcel nie jest właściwe ... phpexcel jest specyficznym biblioteka, która nie jest biblioteka Spreadsheet_Excel_Reader –

+0

Nie będzie Spreadsheet_Excel_Reader odczytać pliki .xlsx ... czy faktycznie zaoszczędzić oryginalny plik .xlsx jako Excel95.xls, lub po prostu zmienić jego nazwę? –

+0

@MarkBaker Zapisuję oryginalny plik w formacie .xls. Czy jest jakieś inne rozwiązanie? –

Odpowiedz

2

Jak najlepiej mogę powiedzieć, błąd widzisz jest ustawiony przez tę linię kodu:

if(!is_readable($sFileName)) { 
    $this->error = 1; 
    return false; 
} 

Dla jednej lub innego powodu, nie można odczytać pliku dajesz, albo dlatego, że jest uprawnienia/problem użytkownika lub ścieżka do pliku jest nieprawidłowa.

Jeśli jesteś na serwerze * nix, upewnij się, że użytkownik uruchamiający serwer ma uprawnienia do odczytu pliku excel. Serwer internetowy prawdopodobnie działa jako inny użytkownik niż właściciel pliku. Można też spróbować ustawić uprawnienia do 666.

Jeśli tylko ins't znalezieniu pliku, zapewniając pełną ścieżka może pomóc (np $data->read('/usr/local/apache2/htdocs/Excelreader/feed1.xls');

3

Myślę problem jest w rodzaju kodowania .xlxs raczej w pliku ustawienie uprawnienia pliku. w przypadku zmiany pozwolenia nie będzie pracować dla Ciebie. problem jest w OLE_IDENTIFIER (��ࡱ�).

więc dane pliku musi zaczynać się ��ࡱ� danych. Nawet ja mogę szuka odpowiedniego rozwiązania dla tego produktu. któregokolwiek pomocy? ?

+0

Jeśli masz osobne pytanie (wydarzenie, jeśli jest podobne), utwórz dla niego osobne pytanie. –

+0

znalazłem rozwiązanie dla tego problemu. Mając ten sam problem –

1

Błąd mógł z pewnością będą bardziej opisowe. Dodałem w opakowaniu wewnątrz odczytu function() tak:

if (file_exists($sFileName)) 
{ 
    ... 
}else{ 
    die('The file ' . $sFileName . ' was not found'); 
} 

I na pewno wystarczy, szukałem w złym katalogu cały czas !!

1

mb_internal_encoding("8bit"); w nagłówku pliku php zrobiłem dla mnie.

0

proszę przekonwertować plik XLSX do XLS i będzie działać :)

to pracuje dla mnie, można spróbować.

Powiązane problemy