Codeigniter:“导出”选项显示此错误-无法访问此网站

时间:2019-07-31 06:05:39

标签: codeigniter phpexcel

我具有导出选项,可以从数据库中导出所有表数据,将网站托管在服务器上后,它显示此错误:无法访问该网站。但是在本地尝试可以正常工作。相同的导出选项适用于另一个表,但不适用于此表。我要从表中导出的数据,该表有1000列。

我使用的是PHP excel库,我注释了标头行,因此它抛出了错误,因为允许的内存大小为33554432字节已用尽(试图分配1179648字节)。

这是我的控制器代码:

public function export() 
{
    require_once APPPATH.'third_party/PHPExcel.php';
    $this->load->library('excel');
    $this->load->library("excel");
    $object = new PHPExcel();
    $object->setActiveSheetIndex(0);
    $table_columns = array("S_No","Category","Sub_Category","Store","Deal_type","Deal_title","Targer_url","Image_url","Image_alt_text", "Mrp_price", "Deal_price", "Offer_text", "Coupon_code","Short_description","Description","Start_date","Expiry_date","Position_number","New_launch","Current_status");

    $column = 0;

    foreach($table_columns as $field)
    {
       $object->getActiveSheet()->setCellValueByColumnAndRow($column, 1, $field);
       $column++;
    }

    $employee_data = $this->deals_model->get();

    $excel_row = 2;

    $i = 0;
    foreach($employee_data as $row)
    {
        //$colIndex = PHPExcel_Cell::columnIndexFromString($column->getColumn());
        $i++;
        $object->getActiveSheet()->setCellValueByColumnAndRow(0, $excel_row, $i);
        $object->getActiveSheet()->setCellValueByColumnAndRow(1, $excel_row, $row->category_name);
        $object->getActiveSheet()->setCellValueByColumnAndRow(2, $excel_row, $row->sub_category_name);
        $object->getActiveSheet()->setCellValueByColumnAndRow(3, $excel_row, $row->store_name);
        $object->getActiveSheet()->setCellValueByColumnAndRow(4, $excel_row, $row->deal_type_text);
        $object->getActiveSheet()->setCellValueByColumnAndRow(5, $excel_row, $row->deal_title);
        $object->getActiveSheet()->setCellValueByColumnAndRow(6, $excel_row, $row->target_url);
        $object->getActiveSheet()->setCellValueByColumnAndRow(7, $excel_row, $row->image);
        $object->getActiveSheet()->setCellValueByColumnAndRow(8, $excel_row, $row->image_alt_text);
        $object->getActiveSheet()->setCellValueByColumnAndRow(9, $excel_row, $row->mrp_price);
        $object->getActiveSheet()->setCellValueByColumnAndRow(10, $excel_row, $row->deal_price);
        $object->getActiveSheet()->setCellValueByColumnAndRow(11, $excel_row, $row->offer_text);
        $object->getActiveSheet()->setCellValueByColumnAndRow(12, $excel_row, $row->coupon_code);
        $object->getActiveSheet()->setCellValueByColumnAndRow(13, $excel_row, $row->short_description);
        $object->getActiveSheet()->setCellValueByColumnAndRow(14, $excel_row, $row->description);
        $object->getActiveSheet()->setCellValueByColumnAndRow(15, $excel_row, $row->start_date_time);
        $object->getActiveSheet()->setCellValueByColumnAndRow(16, $excel_row, $row->expiry_date_time);
        $object->getActiveSheet()->setCellValueByColumnAndRow(17, $excel_row, $row->position_number);
        $object->getActiveSheet()->setCellValueByColumnAndRow(18, $excel_row, $row->is_new_launch);
        $object->getActiveSheet()->setCellValueByColumnAndRow(19, $excel_row, $row->current_status);
        $excel_row++;
    }

    $object_writer = PHPExcel_IOFactory::createWriter($object, 'Excel5');
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="Deals_' . date('Y_m_d_Hi') . '.xls"');
    $object_writer->save('php://output');
}

我解决了这个问题,在代码中添加了这一行:

 ini_set('memory_limit', '2048M');

0 个答案:

没有答案