WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 23.03.2021 18:05:52

berny
Member

CSV konfigurieren

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 18:06:11)

Offline

#2 23.03.2021 20:02:22

florian
Administrator

Re: CSV konfigurieren

Beitrag vom Ursprungsthread abgetrennt, weil andere Fragestellung :-/

Offline

Liked by:

berny

#3 23.03.2021 23:36:43

mrbaseman
Developer

Re: CSV konfigurieren

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

Liked by:

berny

#4 24.03.2021 19:47:48

berny
Member

Re: CSV konfigurieren

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

#5 24.03.2021 20:02:50

bernd
Developer

Re: CSV konfigurieren

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.

https://itectec.com/superuser/how-to-ge … csv-files/


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Online

Liked by:

berny

#6 24.03.2021 20:29:15

mrbaseman
Developer

Re: CSV konfigurieren

berny wrote:

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 20:31:24)

Offline

Liked by:

berny

#7 25.03.2021 10:36:18

berny
Member

Re: CSV konfigurieren

... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Irgendwie passend :-D

Last edited by berny (25.03.2021 10:36:45)

Offline

#8 26.03.2021 10:32:16

berny
Member

Re: CSV konfigurieren

Bitte verifizieren:

export_submissions.php
Zeile 218 ändern auf:

$lines[] = '"'.join('"'.MPFORM_CSV_SEPATATOR.'"', $column_names).'"';

Offline

#9 26.03.2021 17:45:19

berny
Member

Re: CSV konfigurieren

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

#10 26.03.2021 22:48:26

mrbaseman
Developer

Re: CSV konfigurieren

berny wrote:

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.

berny wrote:

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

#11 27.03.2021 09:34:39

berny
Member

Re: CSV konfigurieren

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 09:49:50)

Offline

#12 27.03.2021 13:33:15

berny
Member

Re: CSV konfigurieren

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

#13 27.03.2021 21:28:48

mrbaseman
Developer

Re: CSV konfigurieren

ich hab jetzt mal das Zeilenende ("\r\n") auch noch mit rein genommen

Offline

Liked by:

berny

Board footer

Powered by FluxBB

up