2016-03-21 75 views
1

我使用PHPExcel讀取一個XLSX工作簿的,以下是我使用至今只設置活動板PHPExcel表索引越界異常

date_default_timezone_set('Europe/London'); 
set_include_path(get_include_path() . PATH_SEPARATOR . './Classes/'); 

include 'PHPExcel/IOFactory.php'; 

$reader = PHPExcel_IOFactory::createReader('Excel2007'); 
$reader->setReadDataOnly(true); 
$xlWB = $reader->load('/' . $target_file); 
$xlWB->setActiveSheetIndex(0); //EXCEPTION OCCURS HERE 

的代碼,但我得到異常:

致命錯誤:未捕獲的異常「PHPExcel_Exception」與消息「你試圖設置由出界指數的活性的片材:0.片材的實際數量是0」在/ [my root] /Classes/PHPExcel.php:695堆棧跟蹤:#0/[my-root] /conversion-demo.php(211):PHPExcel-> setActiveSheetIndex(0)#1 {main}拋出/上線

文件[我的根] /Classes/PHPExcel.php是.xlsx文件,它確實存在(路徑是正確的),並有在文件中3片。

我在這裏做了一些根本性的錯誤嗎?

+0

你不能選擇按名稱,而不是指數。你可以試試嗎? –

+0

如果沒有索引爲0的工作表,那麼電子表格中不包含任何工作表,或者在加載文件時出現問題.....無論如何,只有您有權訪問該文件因爲我們幾乎不可能說更多 –

+0

@MarkBaker這是一個加載文件的問題,當在客戶機上打開時,它需要一個損壞的負載。感謝指針認爲我瘋了! –

回答

0

檢查你從哪裏獲取文件的權限 - 我剛剛在文件上傳時遇到了這個問題,並在Windows \ Temp中修改了權限修正了它。

+0

該文件位於我的服務器上的根目錄的子文件夾中,並具有完全的讀/寫訪問權限。 –

0

嘗試手動上傳文件。

現在有同樣的問題。 Excel模板在git倉庫中被提交,git以某種方式更改了表單。所以,我上傳本地版本到服務器 - 現在它的工作。

更好的辦法:這可能與.gitattributes文件來解決,只寫這個*.xls binary存在,重命名文件,並重新作出