PHPExcel不能在Linux上工作,已经尝试了一切

时间:2014-09-12 03:39:50

标签: php linux phpexcel

我的应用程序利用PHPExcel读取.xlsx文件,无论我尝试什么,它似乎都不起作用。它在Windows中测试完美,但在Linux中不起作用。

php的扩展已启用,加载类的区分大小写没有问题,类肯定正在加载(使用`get_included_files检查)并且数据库连接函数都正常工作,我可以发出SQL命令并找回一张桌子。

这是使用PHPExcel的代码块:

if(isset($_FILES['file'])){
  if(check_file($_FILES['file'])){

    //set the excel version needed
    $inputFileType = 'Excel2007';

    //set variable with path of file, set the sheet name we want
    $inputFileName = $_FILES['file']['tmp_name'];
    $sheetname = 'KSAs';

    echo $inputFileName . "</br>";
    echo $sheetname . "</br>";

    //create an object reader, pass in the file type, load the file
    $objReader = PHPExcel_IOFactory::createReader($inputFileType);
    $objReader->setLoadSheetsOnly($sheetname);

    //load the file into the reader object
    $objPHPExcelReader = $objReader->load($inputFileName);


    $loadedSheetNames = $objPHPExcelReader->getSheetNames();

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcelReader, 'CSV');

    foreach($loadedSheetNames as $sheetIndex => $loadedSheetName) {
        $objWriter->setSheetIndex($sheetIndex);
        $objWriter->save($loadedSheetName.'.csv');
    }

    echo $loadedSheetNames;

最后一个语句echo $ loadedSheetNames永远不会执行。我不确定问题可能是什么。

编辑:

关于用户Raptors的建议我开始做一些调试。在了解了如何正确使用var_dump之后,我打印出错误。问题肯定在于创建$objReader类,因为var_dump读出来了:

object(PHPExcel_Reader_Excel2007)#1 (6) {
  ["_referenceHelper":"PHPExcel_Reader_Excel2007":private]=>
  object(PHPExcel_ReferenceHelper)#3 (0) {
  }
  ["_readDataOnly":protected]=>
  bool(false)
  ["_includeCharts":protected]=>
  bool(false)
  ["_loadSheetsOnly":protected]=>
  NULL
  ["_readFilter":protected]=>
  object(PHPExcel_Reader_DefaultReadFilter)#2 (0) {
  }
  ["_fileHandle":protected]=>
  NULL
}

$ objReader类打印出一个巨大的结果。我不太确定如何阅读数据,所以我想我必须弄明白。我没有太多的调试知识或经验,所以我不知道从哪里开始。

0 个答案:

没有答案