it-swarm.com.de

wie man eine externe PHP-Datei in drupal 8) einfügt

Ich möchte zwei xlsx-Dateien zusammenführen und die zusammengeführte Datei in drupal 8.) herunterladen. Deshalb habe ich dafür eine PHPExcel-Bibliothek verwendet.

Aber ich bin nicht in der Lage, eine PHPExcel.php-Datei in benutzerdefinierten Controller dafür aufzunehmen. Ich habe require_once, module_load_include () verwendet, aber es funktioniert nicht für mich.

Wie kann ich es aufnehmen. Bitte helfen Sie.

require_once DRUPAL_ROOT.'/'.drupal_get_path('module','custom').'/src/Controller/PHPExcel.php';

or

module_load_include('php', 'custom', 'src/Controller/PHPExcel');

$file1 = 'ford.xlsx';
$file2 = 'toyota.xlsx';
$objPHPExcel1 = PHPExcel_IOFactory::load($file1);
$objPHPExcel2 = PHPExcel_IOFactory::load($file2);

foreach($objPHPExcel2->getSheetNames() as $sheetName) {
$sheet = $objPHPExcel2->getSheetByName($sheetName);
$sheet->setTitle($sheet->getTitle());
$objPHPExcel1->addExternalSheet($sheet);
}

header('Content-Type: application/vnd.ms-Excel');
header('Content-Disposition: attachment;filename="ford-toyota.xls"');
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); 
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel1, 
'Excel2007');
$objWriter->save('php://output');
exit;

und Fehler ist:

Fatal error: Class 'Drupal\custom\Controller\PHPExcel_IOFactory' not found
2
user78498

Ich bin mir aufgrund Ihrer Frage nicht sicher, welche Phpexcel-Bibliothek Sie verwenden. Daher gibt es möglicherweise unterschiedliche Antworten. Hier ist eine:

1. Auf Packagist

Wenn wie im Fall von mvlabs/mvlabs-phpexcel , würden Sie Folgendes tun:

in der Kommandozeile:

composer require mvlabs/mvlabs-phpexcel

Dann können Sie in der Datei, in der Sie es verwenden möchten, einfach eine "Use" -Anweisung hinzufügen (gemäß diese Antwort ):

use ExternalPackage\namespace\Foo;

Drupal 8 führt ein automatisches Einschließen durch und "kennt" alle PHP - Bibliotheken im Herstellerordner.

5
Duncanmoo