php - codeigniter 上传 Excel 并在 View 中显示内容

标签 php codeigniter codeigniter-3 phpspreadsheet

我正在使用 codeigniterphpspreadsheet 导入 Excel 文件数据。现在,在我的代码中也可以读取 Excel 内容,但是在尝试传输数据并将其显示在 View 上时出现错误。请帮助进阶。

<强>1。错误代码。

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: sheetData

Filename: views/upload_view.php

Line Number: 18

<强>3。 Controller 代码

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
//Load plugin
require (APPPATH .'third_party\vendor\autoload.php');
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
use PhpOffice\PhpSpreadsheet\Reader\Xls;
use PhpOffice\PhpSpreadsheet\Reader\IReadFilter;


class Upload extends CI_Controller {

    public function __construct()
        {
                parent::__construct();
                $this->load->helper(array('form', 'url'));
        }

    public function index()
    {
        $this->load->view('header_view');
        $this->load->view('menu_view');
        $this->load->view('upload_view');
    }

    function do_upload()
    {
        $config['upload_path'] = './uploads';
        $config['allowed_types'] = 'xls|xlsx';
        $config['overwrite'] = TRUE;

        $this->load->library('upload', $config);

        if ( ! $this->upload->do_upload('upload_file')){
            $error = array('error' => $this->upload->display_errors());
            var_dump ($error);
        }
        else{

            $data = array('upload_data' => $this->upload->data());
            $full_path = $data['upload_data']['full_path'];

            //---------Config read file content----------//
            $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx(); //Excel 2007 or higher
            //$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls(); //Excel 2003
            $spreadsheet = $reader->load($full_path);
            $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
            //var_dump('<pre>');
            //var_dump($sheetData);
            $this->load->view('header_view');
            $this->load->view('menu_view');
            $this->load->view('upload_view', $sheetData);
        }
    }

}

/* End of file Upload.php */
/* Location: ./application/controllers/Upload.php */

<强>2。查看代码

<?php                       
    foreach ($sheetData as $value) {
        echo $value -> A;
    }
?>

最佳答案

试试这个方法:

$dataarr = array();    
$dataarr['sheetData'] = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);

$this->load->view('header_view');
$this->load->view('menu_view');
$this->load->view('upload_view', $dataarr);

我想这对你有帮助。

关于php - codeigniter 上传 Excel 并在 View 中显示内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52941321/

相关文章:

css - Base_url 在 codeigniter 3 上调用外部 css

php - 连接表并显示 city.name

php - 如何在单个查询中获取拥有产品的嵌套类别?

php - 将mysql准备查询结果存储在数组中

php - 允许网站 URL 中的所有字符有哪些安全风险?

javascript - 无法通过向输入字段赋值来添加选择字段?

php - MYSQL 用户定义的@VARIABLE

php - 使用php显示mysql数据

javascript - 如何使用 JQuery 验证 Ckeditor

codeigniter - 重新路由后未加载默认 Controller