1

I was using phpexcel on an old site (that doesn't even have composer), but i got stuck in this error.

Fatal error: Uncaught Error: Class 'PhpOffice\PhpSpreadsheet\Writer\BaseWriter' not found in /cpl/plugins/PhpOffice/PhpSpreadsheet/Writer/Xlsx.php:32 Stack trace: #0 /cpl/json/json.exportar.php(32): require_once() #1 {main} thrown in /cpl/plugins/PhpOffice/PhpSpreadsheet/Writer/Xlsx.php on line 32

Heres my code:

require_once '../plugins/PhpOffice/PhpSpreadsheet/Spreadsheet.php';
require_once '../plugins/PhpOffice/PhpSpreadsheet/Writer/Xlsx.php';

use \PhpOffice\PhpSpreadsheet\Spreadsheet;
use \PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$spreadsheet = new Spreadsheet();

$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');

$writer = new Xlsx($spreadsheet);
$writer->save('hello world.xlsx');

Before that, I tried to use an autoload, instead of the require_once:

<?php

function loadLibraries($class) {
    $path = __DIR__."/plugins/";

    require_once $path.$class.".php";
}


spl_autoload_register("loadLibraries");

And put it into my code:

require "../autoload.php";

use \PhpOffice\PhpSpreadsheet\Spreadsheet;
use \PhpOffice\PhpSpreadsheet\Writer\Xlsx;

But the thing is, then I had this error:

Fatal error: require_once(): Failed opening required '/cpl/plugins/PhpOffice\PhpSpreadsheet\Spreadsheet.php' (include_path=' ') in /cpl/autoload.php on line 6

I don't know why, but instead of plugins/PhpOffice/PhpSpreadsheet/... it's '\' and not '\'.

Then, I decided to manually require the classes, and got stuck on that error I first mentioned, I even tried to require

require_once '../plugins/PhpOffice/PhpSpreadsheet/Writer/BaseWriter.php';
use \PhpOffice\PhpSpreadsheet\Writer\BaseWriter;

But it didn't worked either.

Any ideas?

Wahyu Kristianto
  • 8,719
  • 6
  • 43
  • 68
Ezylpro
  • 11
  • 1

0 Answers0