Wir haben eine Funktion von unserem Dienstleister, die aus einer SQL-Tabelle eine CSV-Datei generiert. Diese würde sich auch relativ leicht auf Subtables umbauen lassen.
Da es nicht unser Code ist, kann ich dir leider nichts davon zur Verfügung stellen. Es geht aber auf jeden Fall und die Google-Suche hilft da in jedem Fall weiter.
Auf die Schnelle habe ich z.B. dies hier gefunden:
https://www.geeksforgeeks.org/how-to-export-html-table-to-csv-using-javascript/
Hi Timo
ich hab einen anderen Wege gesucht.
Wie kriege ich es hin wenn in der Prozesstabelle dieser Wert steht: 000/000/137/811/ad202e8141168ea57d1a9cb6f57f185f.csv das ich es als Download anbiete? Hast du eine Idee? Wie kriege ich es aus der filestruktur zum Download bereitgestellt?
Moin,
du kannst den vollen Link zur Datei bekommen via
$this->getFullUploadPath('meinPTField');
Man kann über eine DialogFunction xlsx generieren.
Man sammelt die Daten in einer Map und macht dann im JS so etwas in der Richtung (verkürzt aus einem Projekt und ungetestet)
JS:
jr_execute_dialog_function(
'getXlsx',
{ data: data },
function(/** @type {{ status: string; result: { data: string; }; }} */ response) {
if (response.status === 'ok') {
var a = document.createElement('a');
a.download = 'export.xlsx';
a.href =
'data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,' +
response.result.data;
a.click();
} else {
handleError(response);
}
},
handleError
);
PHP
<?php
class className extends JobRouter\Engine\Runtime\PhpFunction\DialogFunction
{
public function execute($rowId = null)
{
require_once(Utility::getJobRouterPath() . '\library\vendor\phpoffice\phpspreadsheet\src\Bootstrap.php');
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
$spreadsheet->getActiveSheet()->fromArray($this->getParameter('data'));
ob_start();
(new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet))->save('php://output');
$this->setReturnValue('data', base64_encode(ob_get_clean()));
}
}
Hi Stefan
danke für deine Nachricht.
Aber ich verstehe das immer noch nicht.
$this->getFullUploadPath('meinPTField'); bekomme ich den Pfad der Datei zurück und wie hilft mir das weiter?
Wie kann ich dann das als Download anbieten? In das Anhangsfeld kann ich es nicht zurückschreiben