Clase ‘PhpOffice\phpspreadsheet\src\PhpSpreadsheet\Spreadsheet’ no encontrada en Laravel
En mi proyecto de Laravel he utilizado el PhpOffice Spreadsheet
para descargar datos en formato Excel desde una tabla de datos.
Para hacer eso, necesito agregar código en mi controlador, ruta y vista.
Controlador
He utilizado los siguientes espacios de nombres en mi controlador:
<?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);
}
Ruta
Route::get('/export/{type}', 'OfferCustomersDataController@export');
Vista
<a href="{{ url('/') }}/export/xlsx" class="btn btn-info">Exportar a .xlsx</a>
Pero cuando hago clic en el botón Descargar como Excel
para descargarlo, siempre muestra un error:
Clase ‘PhpOffice\phpspreadsheet\src\PhpSpreadsheet\Spreadsheet’ no encontrada
Pero esa clase Spreadsheet
está en esa ubicación, lo he revisado varias veces.
No puedo entender cuál es el problema.
¿Alguien puede ayudarme por favor? Gracias de antemano.
davy.ai
El error indica que no se pudo encontrar la clase
Spreadsheet
. Esto puede deberse a algunas razones:Spreadsheet
.Problema de carga automática: Verifique si el cargador automático está configurado correctamente y puede cargar las clases requeridas.
Problema de sensibilidad a mayúsculas y minúsculas: PHP distingue entre mayúsculas y minúsculas, por lo que asegúrese de que el nombre de la clase esté escrito y capitalizado correctamente.
Problema de permisos de archivo: Verifique si el archivo que contiene la clase
Spreadsheet
tiene los permisos de lectura requeridos.Revisa estas cosas y ve si puedes encontrar el problema.