【问题标题】:Class 'PhpOffice\phpspreadsheet\src\PhpSpreadsheet\Spreadsheet' not found in Laravel在 Laravel 中找不到类 'PhpOffice\phpspreadsheet\src\PhpSpreadsheet\Spreadsheet'
【发布时间】:2022-01-11 15:28:43
【问题描述】:

在我的 Laravel 项目中,我使用 PhpOffice Spreadsheet 从数据表中以 excel 格式下载数据。

为此,我需要在我的控制器、路由和视图中添加代码。

控制器

我在控制器中使用了以下命名空间

<?php

    namespace App\Http\Controllers;

    use PhpOffice\PhpSpreadsheet\Spreadsheet;
    use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    use PhpOffice\PhpSpreadsheet\Writer\Xls;
    use App\OfferCustomersDataTbl;

    public function export($type) {
        $offer_customer_data = OfferCustomersDataTbl::all();
        $spreadsheet = new Spreadsheet();
        $sheet = $spreadsheet->getActiveSheet();
        $sheet->setCellValue('A1', 'Id');
        $sheet->setCellValue('B1', 'Name');
        $sheet->setCellValue('C1', 'Email');
        $rows = 2;

        foreach($offer_customer_data as $empDetails){
            $sheet->setCellValue('A' . $rows, $empDetails['id']);
            $sheet->setCellValue('B' . $rows, $empDetails['name']);
            $sheet->setCellValue('C' . $rows, $empDetails['email']);
            $rows++;
        }

        $fileName = "emp.".$type;
        if($type == 'xlsx') {
        $writer = new Xlsx($spreadsheet);
        } else if($type == 'xls') {
        $writer = new Xls($spreadsheet);
        }
        $writer->save("export/".$fileName);
        header("Content-Type: application/vnd.ms-excel");
        return redirect(url('/')."/export/".$fileName);
    }

路线

Route::get('/export/{type}', 'OfferCustomersDataController@export');

查看

<a href="{{ url('/') }}/export/xlsx" class="btn btn-info">Export to .xlsx</a>

但是当我点击Download as Excel按钮进行下载时,它总是报错

类 'PhpOffice\phpspreadsheet\src\PhpSpreadsheet\Spreadsheet' 不是 找到了

但是 Spreadsheet 班级在那个位置,我已经检查了好几次了。

我想不通的问题在哪里。

有人帮忙吗?提前致谢

【问题讨论】:

  • 请分享更多细节。您在哪里访问具有给定命名空间的类?

标签: php laravel laravel-7 phpoffice-phpspreadsheet


【解决方案1】:

在命令行中: composer require phpoffice/phpspreadsheet

然后在控制器中:

use PhpOffice\PhpSpreadsheet\Spreadsheet;

使用'namespace'\'classname',而不是绝对链接

【讨论】:

  • 现在我使用它但仍然收到错误Class 'PhpOffice\PhpSpreadsheet\Spreadsheet' not found
  • 你在命令行中使用了composer require phpoffice/phpspreadsheet吗?
  • 是的,这是错误的。我现在解决了。请让您回答问题,以便其他人可以理解解决方案,我会接受它
猜你喜欢
  • 2018-06-15
  • 2020-02-24
  • 2019-07-30
  • 2021-11-25
  • 2018-06-22
  • 2017-10-29
  • 2021-04-16
  • 2022-06-16
相关资源
最近更新 更多