2012-01-24 1 views
5

안녕하세요, 젠드 프레임 워크를 사용하여 Excel 파일을 구문 분석하고 싶습니다. Zend Developer Zone에 가서 phpexcelreader을 다운로드 할 해결책을 찾았습니다. 코드를 다운로드하여 localhost에 프로젝트를 설정하고 코드를 실행합니다. 나는 TREID가 .xlsx 파일을 읽을 때 내가 .xls 형식으로 파일을 저장하고 코드가 성공적으로 파일을 구문 분석 실행 오류를파일 이름 feed1.xls는 PHP에서 읽을 수 없습니다

The filename feed1.xlsx is not readable 

를 생성합니다. 이제는 Zend framework에서 개발 한 프로젝트에서 이것을 구현하고 싶습니다. 모델을 만들었고 내 프로젝트에서 require_once excelreader를 내 프로젝트 맨 위에 만들었습니다.

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

컨트롤러에서이 모델 함수를 호출했습니다. 하지만 로컬 호스트에서 찾은 동일한 오류가 .xlsx 개의 파일을 사용하여 생성됩니다. 하지만 로컬 호스트에서 간단한 프로젝트에서 실행되는 코드에 의해 해석되는 .xls 파일을 읽습니다. 또한 로컬에서 zend 프레임 워크를 실행 중입니다.

내 코드가 잘못 되었나요? 또는 동일한 작업을 수행 할 수있는 방법이 있습니까? 이 하나 있기 때문에,

저런 이유로
if(!is_readable($sFileName)) { 
    $this->error = 1; 
    return false; 
} 

, 당신이주는 파일을 읽을 수 없습니다

+0

는 다음 phpexcel 태그 ... phpexcel 당신이 실제로 저장 했었지 ... Spreadsheet_Excel_Reader 라이브러리 –

+0

도 아니고 .xlsx 파일을 읽을 Spreadsheet_Excel_Reader하는 특정 라이브러리 적합하지 않습니다 원본 .xlsx 파일을 Excel95로 만듭니다.xls, 아니면 단순히 이름을 바꾸시겠습니까? –

+0

@ MarkBaker 원본 파일을 .xls 형식으로 저장합니다. 다른 해결책이 있습니까? –

답변

2

가장으로서 나는 당신이보고있는 오류 코드의 라인으로 설정되어 말할 수 사용 권한/사용자 문제 또는 파일 경로가 잘못되었습니다.

* nix 서버를 사용하는 경우 웹 서버를 실행하는 사용자에게 Excel 파일을 읽을 수있는 권한이 있는지 확인해야합니다. 웹 서버는 파일을 소유 한 사람과 다른 사용자로 실행 중일 수 있습니다. 또한 전체 경로가 도움이 될 수 있습니다 제공, 그냥 ins't 파일을 찾는 경우 666

에 권한을 설정하는 시도 할 수 있습니다 (예 : $data->read('/usr/local/apache2/htdocs/Excelreader/feed1.xls');

3

나는 문제가 .xlxs 파일의 인코딩 형식이 아니라에서의 생각 파일 권한 설정을 변경하면 사용 권한이 변경되지 않습니다. OLE_IDENTIFIER (��ࡱ�)에있는 문제가 있습니다.

파일 데이터는 ��ࡱ� 데이터로 시작해야합니다.이 문제에 대한 적절한 해결책이 필요합니다. 아무도 도와 줄 수 있습니까? ?

+0

별도의 이벤트 (비슷한 경우) 질문이있는 경우 별도의 질문을 만드십시오. –

+0

yuo가이 문제에 대한 해결책을 찾았습니다. 같은 문제가있다. –

1

오류가 발생할 수 있습니다. 분명히 좀 더 설명력이 있어야한다. 다음과 같이 read() 함수 내부에 래퍼를 추가했습니다.

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

확실하게, 나는 잘못된 디렉토리를 전체적으로 찾고있었습니다!

1

mb_internal_encoding("8bit");은 PHP 파일의 머리에서 나를 위해 속임수를했습니다.

0

XLS에 XLSX 파일을 변환하고 그것을 작동하십시오 : 그것은 나를 위해 노력하고 있습니다

, 당신은 그것을 시도 할 수 있습니다. 당신이 Spreadsheet_Excel_Reader를 사용하는 경우

관련 문제