虽然 excel 确有单元格数的限制,但怎么也不会是只有150这么小
你应该检查你的程序是否在执行到相关地方出现了错误当然也可能是你可用的内存实在是太小了
在不增加可用内存的情况下,也可以采用文件缓存的方式缓解这一矛盾

解决方案 »

  1.   

    很大可能是你程序的问题.
    1:lz可以去stackoverflow或者phpexcel官网发帖
    2:lz可以贴代码让斑竹给你指点指点
      

  2.   

    跟程序没问题,我在想是不是跟php的配置有什么关系
      

  3.   

    大家帮我看看最后保存文件的代码有问题没:
    header('Content-Type: application/vnd.ms-excel; charset="UTF-8"'); 
    header('Content-Disposition: attachment; filename='.urlencode($fileName));
    header("Content-Transfer-Encoding: binary");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");  
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');  
    $objWriter->save('php://output'); 
      

  4.   

    谁有php+phpexcel的环境帮我测试一下,测试代码如下:
    <?php 
    require_once 'PHPExcel.php';
    require_once 'PHPExcel/IOFactory.php';$objPHPExcel = new PHPExcel();
    $objPHPExcel->setActiveSheetIndex(0);
    $objActSheet = $objPHPExcel->getActiveSheet();
    for ($i=0;$i<215;$i++) {
    $objActSheet->setCellValueByColumnAndRow(0,$i+1,'ok');
    }
    $fileName = "文件名.xls";
    header('Content-Type: application/vnd.ms-excel; charset="UTF-8"'); 
    header('Content-Disposition: attachment; filename='.urlencode($fileName));
    header("Content-Transfer-Encoding: binary");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");  
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
    $objWriter->save('php://output'); 
    exit;
    ?>
    经过我的测试,行数改为216的时候下载下来的excel文件就有问题了,215的时候就ok
      

  5.   

    for ($i=0;$i<1215;$i++) {
    $objActSheet->setCellValueByColumnAndRow(0,$i+1,'ok');
    }
      

  6.   

    使用ini_set把php的可用内存提高点?
    我的导出10多万条数据都没问题
      

  7.   

    终于解决了,原来是我下载的PHPExcel有问题,重新去官网下载了1.7.8版本后覆盖本地,一切OK,哈哈,开心啊,谢谢各位,散分
      

  8.   

    其实是这样的。如果你直接进到服务器上去打开这个文件,而不是下载,你会发现一切正常。
    问题只出现在下载的文件中。因此,真正的问题不是phpexcel的代码,而是你写的php实现文件下载部分的代码。而这里的问题一般是:在实现下载部分的代码最后,没有return true;造成的。