首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel导出内存

问Laravel导出内存
EN

Stack Overflow用户
提问于 2018-02-06 02:50:29
回答 1查看 1.8K关注 0票数 1

因此,我在excel上导出数据时出错了。

代码语言:javascript
复制
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 72 bytes) in /home1/greatsup/public_html/system/application/vendor/phpoffice/phpexcel/Classes/PHPExcel/Cell.php on line 889

这是令人惊讶的,因为我一直在导出的表只包含10行。因此,我尝试先打印它,看看是否有任何数据是获取的,但仍然有相同的错误。

PS:我尝试在更大的数据集上使用excel导出。但是在这个控制器里,我很难弄清楚是什么问题。

这是我的密码

代码语言:javascript
复制
 public function excel_export(Request $request) {

    $post = $request->all();
    $dateFrom = $post['updated_at_from'];
    $dateTo = $post['updated_at_to'];

    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    date_default_timezone_set('Asia/Manila');
    if (PHP_SAPI == 'cli')
        die('This example should only be run from a Web Browser');
    $objPHPExcel = new PHPExcel();
    $objPHPExcel = PHPExcel_IOFactory::load("templates/unit_specifications_format.xlsx");
    $objPHPExcel->getProperties()->setCreator(Config::$APPNAME)
                                 ->setLastModifiedBy(Config::$APPNAME)
                                 ->setTitle(null)
                                 ->setSubject(null)
                                 ->setDescription(null)
                                 ->setKeywords(null)
                                 ->setCategory(null);
    $fontSettings = array(
    'font'  => array(
        'bold'  => true,
        'color' => array('rgb' => 'FFFFFF'),
        'size'  => 12,
        'name'  => 'calibri'
    ));
    $headerSettings = array('fill' => array(
    'type'  => PHPExcel_Style_Fill::FILL_SOLID,
    'color' => array('rgb' => \App\Resources\Config::$PRIMARYCOLOR)
    ));
    $borderSettings = $BStyle = array(
      'borders' => array(
        'allborders' => array(
          'style' => PHPExcel_Style_Border::BORDER_THIN
        )
      )
    );

    $query = DB::table('unit_specifications')->get();
    print_r($query);
    exit;


    $objPHPExcel->setActiveSheetIndex(0);
    $sheet = $objPHPExcel->getActiveSheet();

    $start = 5;
    $row = $start;
    $column = 0;
    $no = 1;




    $allCombination = PHPExcel_Cell::stringFromColumnIndex(0).$start.':'.PHPExcel_Cell::stringFromColumnIndex($column-1).($row-1);
    $sheet->getStyle($allCombination)->applyFromArray($borderSettings);
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment;filename="'.$this->excel_filename.'"');
    header('Cache-Control: max-age=0');
    header('Cache-Control: max-age=1');
    header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
    header ('Cache-Control: cache, must-revalidate');
    header ('Pragma: public');
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter->save('php://output');
    exit;
}

有什么我错过的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-06 03:07:41

--如果您不确定您的PHP内存限制设置为什么--则可以将其包含在错误消息中。但是,大小是以字节为单位的,所以我们为您做了一些转换:

代码语言:javascript
复制
PHP: Fatal Error: Allowed Memory Size of 8388608 Bytes Exhausted - 8 MB
PHP: Fatal Error: Allowed Memory Size of 16777216 Bytes Exhausted - 16 MB
PHP: Fatal Error: Allowed Memory Size of 33554432 Bytes Exhausted - 32 MB
PHP: Fatal Error: Allowed Memory Size of 67108864 Bytes Exhausted - 64 MB
PHP: Fatal Error: Allowed Memory Size of 134217728 Bytes Exhausted - 128 MB
PHP: Fatal Error: Allowed Memory Size of 268435456 Bytes Exhausted - 256 MB
PHP: Fatal Error: Allowed Memory Size of 536870912 Bytes Exhausted - 512 MB
PHP: Fatal Error: Allowed Memory Size of 1073741824 Bytes Exhausted - 1 GB

若要解决此错误,请转到php.ini

代码语言:javascript
复制
ini_set('memory_limit', '1024M'); // or you could use 1G

这取决于您使用的是什么Apache,它们中的大多数都使用word。

memory_limit

所以,搜索这个词,修改它,检查你的数据,希望这能解决你的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48634715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档