WBCE CMS – Way Better Content Editing.
You are not logged in.
Pages: 1
gibt es in MP Form eine Möglichkeit, den CSV Trenner manuell zu konfigurieren, um zb das csv gleich Excel-Kompatibel zu machen?
Last edited by berny (23.03.2021 17:06:11)
Offline
Beitrag vom Ursprungsthread abgetrennt, weil andere Fragestellung :-/
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
berny
Nein, bisher nicht. CSV steht für "comma separated values". Das ist doch ziemlich eindeutig, dass da der Feldtrenner ein Komma sein muss, oder?
na gut, ich will mal nicht so sein. Mit der angehängten Verison kannst du MPFORM_CSV_SEPATATOR in constants.user.php definieren
Offline
berny
mir gehts um die Praxis:
User exportiert und öffnet im Excel -Gibt ein Durcheinander weil anderer Delimiter als Excel Standard....
Dem User interessiert der csv Standard weniger.
Als Programmierer ist halt DAU Denken öfters befremdlich :-)
auf jeden Fall werde ich das die nächsten Tage testen.
Danke nochmals!
Offline
Das "Semikolon statt Komma" ist aber nicht Excel-Standard sondern hängt von den Windows-Systemeinstellungen ab.
Wenn dort das Komma als Dezimal-Seperator eingestellt ist (wie u.a. bei uns in DE üblich) "weigert" sich Excel das Komma als List-Seperator zu verwenden.
... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...
Offline
berny
auf jeden Fall werde ich das die nächsten Tage testen.
Danke nochmals!
...oder du probierst es gleich mit der 1.3.37 - da ist das nämlich auch schon drin
Last edited by mrbaseman (24.03.2021 19:31:24)
Offline
berny
... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...
Irgendwie passend :-D
Last edited by berny (25.03.2021 09:36:45)
Offline
Bitte verifizieren:
export_submissions.php
Zeile 218 ändern auf:
$lines[] = '"'.join('"'.MPFORM_CSV_SEPATATOR.'"', $column_names).'"';
Offline
So, habs mal getestet:
prinzipiell funkt das ganze, nur kann excel trotzdem die Formatierung nicht richtig umsetzen.
Es steht alles in der ersten Zelle.
Interessanterweise, der erste Eintrag bis zum delimiter ohne ", Dannach alles mit ".
Fehlt da irgendwas? /n oder ähnliches?
Im Editor schaut das ganz normal aus....
Offline
Bitte verifizieren:
export_submissions.php
Zeile 218 ändern...
Oh verdammt! In der Spaltenüberschrift war dann noch das Komma mit drin. Das kommt ins nächste Release mit rein.
So, habs mal getestet:
prinzipiell funkt das ganze, nur kann excel trotzdem die Formatierung nicht richtig umsetzen.
Es steht alles in der ersten Zelle.Interessanterweise, der erste Eintrag bis zum delimiter ohne ", Dannach alles mit ".
Fehlt da irgendwas? /n oder ähnliches?
Im Editor schaut das ganz normal aus....
Ah, das liegt an der Zeile für die Ausgabe:
foreach ($lines as $l) echo "$l;\r\n";
Da ist der Zeilen-Separator ";" enthalten. Wenn natürlich der Feld-Separator das gleiche ist, dann landet alles auf der ersten Zeile. Wie muss denn die Zeile beendet werden, damit Excel das frisst?
Offline
Bin mir nicht sicher, aber einfach ein Zeilenumbruch ohne Zeichen?
Egal welcher Delimiter.
Ich muss mal ein csv erstellen und gucken...
Ist ein Zeilendelimiter überhaupt Standard bei csv?
Wobei, der Strichpunkt müsste ja einfach eine weitere Zelle erzeugen, daran sollte es also nicht liegen...
"a1";"a2";"a3"
"b1";"b2";"b3"
usw...
So glaub ich sollte es aussehen.
Last edited by berny (27.03.2021 08:49:50)
Offline
Vorschlag:
Erweitern um
if(!defined('MPFORM_CSV_LINE_SEPATATOR')){
define('MPFORM_CSV_LINE_SEPATATOR',';');
}
In der constants.user.php zB definieren:
define('MPFORM_CSV_SEPATATOR',',');
define('MPFORM_CSV_LINE_SEPERATOR','');
In der export_submissions.php
header("Content-Type: text/plain");
header("Content-Disposition: attachment; filename=results_$section_id.csv");
foreach ($lines as $l) echo $l.MPFORM_CSV_LINE_SEPERATOR."\r\n";
if(($submission_ids !== 'ALL') && is_array($submission_ids) && (!empty($submission_ids))){
foreach ($submission_ids as $l) echo "#could not find submission_id ".$l.MPFORM_CSV_LINE_SEPERATOR."\r\n";
}
} else {
$admin->print_header();
$admin->print_error("results table is disabled - nothing to export", $sUrlToGo);
$admin->print_footer();
exit(0);
}
Zumindest kann man damit die gewünschten Zeichen erstellen.
Warum das Verhalten bei excel aber so ist, dass der erste Delimiter erkannt wird, aber alle weiteren nicht, ist mir momentan nicht erklärbar.
Es lässt sich aber über folgenden Weg relativ einfach konvertieren:
In Excel die erste Spalte markieren.
Auf Registerkarte Daten gehen.
Dort den Menüpunkt "text in Spalten" suchen, anklicken
"getrennt" auswählen
Den richtigen Delimiter auswählen
fertig.
Hoffe das hilft etwas weiter.
Offline
ich hab jetzt mal das Zeilenende ("\r\n") auch noch mit rein genommen
Offline
berny
@mrbaseman
Welche unterschiede gibt es zwischen der 1.3.37.2 und der offiziellen 1.3.37?
Offline
Glaube das hier
https://forum.wbce.org/viewtopic.php?pid=36763#p36763
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
colinax
@mrbaseman
Welche unterschiede gibt es zwischen der 1.3.37.2 und der offiziellen 1.3.37?
Ich Dummerchen, hätte auch gleich in den Changelog reinschauen, können hab spontan vergessen dass mrbaseman in dieser Hinsicht sehr genau ist
*** 1.3.37.3 (Martin Hecht: 07-May-2021)
do not add IP address by default
fix export with different separators than comma
allow to specify line separator (including line ending) for csv export
correctly replace line endings in htmlmessage, thanks to florian
Offline
mrbaseman
Pages: 1