2016-03-21 74 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存在,重命名文件,并重新作出