PhpSpreadsheet – nejde načíst soubor přes funkci

aha009
Člen | 50
+
0
-

Ahoj, nevím jestli jsem s tím tady správně, ale na stackowerflow jsem nepochodil.
Nahrál jsem si do Nette přes composer PhpSpreadsheet – composer require phpoffice/phpspreadsheet
Prakticky vše funguje, ale mám problém, když uploudnu soubor a ten předám do funkce, tak mi vyskakují různé chyby. Neví někdo co s tím? Děkuji

public function getData($file)
{
		$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
		// funguje
		//$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load(__DIR__ . '/../../www/kdavka/test.xlsx');
		// nefunguje chyba: Array to string conversion bdump($file) = 'tets.xlsx
		//$spreadsheet = $reader->load(__DIR__ . "/../../www/kdavka/" . $file);
		// funguje
		//$spreadsheet = $reader->load('C:\xampp\htdocs\kdavka\kdavka\app\Forms/../../www/kdavka/test.xlsx');
		// nefunguje chyba: is_file() expects parameter 1 to be a valid path, array given
		//	File: ...\src\PhpSpreadsheet\Shared\File.php:134
		// 134: if (!is_file($filename)) {
		//	bdump($file) = 'C:\xampp\htdocs\kdavka\net\app\Forms/../../www/kdavka/test.xlsx
		//$spreadsheet = $reader->load($file);

    $d = $spreadsheet->getSheet(0)->toArray();
    $sheetData = $spreadsheet->getActiveSheet()->toArray();
    unset($sheetData[0]);
    return $sheetData;
}

Editoval aha009 (24. 3. 2021 20:41)

Ages
Člen | 128
+
0
-

Ahoj,
Mě funguje naprosto bez problémů.
Jsi si jistý že máš ve $file string (dle té hlášky to vypadá na pole)?

use PhpOffice\PhpSpreadsheet\IOFactory;
$ss = IOFactory::Load($file);
$ws = $ss->getActiveSheet();