Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
#1 30. März 2015 08:50
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
[GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Hallo Ihr Guten,
ist es möglich, über Formbuilder eingegebene Daten in einer CSV- oder Exceltabelle zu speichern? Wenn ja, wie sollte ich vorgehen?
Praktisch wäre auch, wenn man mehrere CSV/Exceldateien automatisch generieeren könnte.
Hintergund ist folgender:
Abteilung X von Firma Y soll drei Tests durchführen. Dazu loggen sie sich über FEU mit einem Gemeinschaftsaccount ein, geben ihren Namen ein und beantworten die Mutliple-Choice-Fragen (Formbuilder) . Am Ende soll das Ergebnis eben nicht nur als Mail versendet, sondern eben auch in einer Datei gespeichert.
Holger Müller | Test XY durchgeführt am 01.10.2015 | Bestanden
Per Mail funktioniert es soweit bereits.
EDIT: Ich sehe gerade, es gibt das Feld "Ergebnisse in eine Datei übertragen". Das könnte ich mal probieren.
Gruß
Beitrag geändert von antibart (30. März 2015 11:02)
Offline
#2 30. März 2015 14:53
- Klenkes
- Server-Pate
- Ort: 89428 Syrgenstein
- Registriert: 17. Dezember 2010
- Beiträge: 1.437
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Ich hatte letztes Jahr so etwas bei einer Vereinsseite eingebaut. Da Excel auch XML liest ist das weiter kein Problem.
Du brauchst im FormBuilder den Feldtyp:
Write Results to Flat File
Pfad zur Datei eintragen und den Dateinamen mit xxx.xls angeben.
In den Feldeinstellungen sehen die Templates so aus:
Template for the header of output file:
<?xml version="1.0" encoding="UTF-8"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Author>Bernd Klenk fuer Schneeteam.de</Author>
<LastAuthor>Website schneeteam.de</LastAuthor>
<Created>2014-10-10T20:00:00Z</Created>
<Company>Schneeteam</Company>
<Version>11.8036</Version>
</DocumentProperties>
<Worksheet ss:Name="Buchungen">
<Table>
<Column ss:Index="1" ss:AutoFitWidth="0" ss:Width="100"/>
<Column ss:Index="2" ss:AutoFitWidth="0" ss:Width="100"/>
...
<Row>
<Cell><Data ss:Type="String">Datum der Buchung</Data></Cell>
<Cell><Data ss:Type="String"><strong>Name</strong></Data></Cell>
...
</Row>
Template for one line of output file:
<Row>
<Cell><Data ss:Type="String">{$sub_date|date_format:"%e. %b %Y - %H:%S"}</Data></Cell>
<Cell><Data ss:Type="String">{$fld_40}</Data></Cell>
...
</Row>
Template for the footer of output file:
</Table>
</Worksheet>
</Workbook>
Funktionierte perfekt! In meinem Fall wurden alle neuen Datensätze als neue Zeile angefügt.
Wichtig ist halt, dass die Struktur stimmt und aufgeht. Da ist Excel echt zickig und wenig fehlertolerant.
Offline
#3 30. März 2015 15:43
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Cooool. Danke.
EDIT:
Mit einer txt-datei funktionierte es bereits.
Die Excell-Datei bleibt aber noch leer. Auch keine Fehlermeldung oder so.
Beitrag geändert von antibart (30. März 2015 17:03)
Offline
#4 30. März 2015 17:22
- Klenkes
- Server-Pate
- Ort: 89428 Syrgenstein
- Registriert: 17. Dezember 2010
- Beiträge: 1.437
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Die Excell-Datei bleibt aber noch leer. Auch keine Fehlermeldung oder so.
Dann stimmt irgendein Tag im XML nicht. Wenn du eine leere xls Datei im Texteditor anschaust, steht vermutlich schon was drin. Am Anfang hatte ich hie und da mal ein <Row> nicht geschlossen.
Ein Editor mit Syntaxhighlighting für XML hilft bei der Fehlersuche oft weiter.
Offline
#5 31. März 2015 09:42
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Danke.
Ich werde noch mal ein bisschen rumbasteln. Ich habe auch schon eine leere txt-datei einfach in xls umbenannt. Auch nichts. Aber schaun wir mal. Ich habe da sicher irgendeinen Fehler reingedreht.
Offline
#6 31. März 2015 20:10
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Alternativ könntest du auch einen UDT andocken, in dem die Daten mit einer Excel-Klasse aufbereitet werden
Offline
#7 13. April 2015 11:01
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Hallo,
ich habe jetzt ein bisschen rumgefummelt und bin ein Stück weitergekommen. Der eine Fehler war meine Doofheit. NAch einer Aktualaisierung wurde als Standart-Speicherort auf den "uploads" zurückgesetzt. Meine Testdateien befanden sich aber im Root. Jetzt werden die Datein wieder gefüllt
Dennoch ein paar Fragen.
Pfad zur Datei eintragen und den Dateinamen mit xxx.xls angeben.
Bist du sicher, dass man eine in .xls-Datei schreiben muss statt in eine .xml-Datei?
Wenn ich in eine .xls-Datei schreibe, warnt excel (2007) zunächst, die Datei überhaupt zu öffen. Ignoriere ich die Warnung, wird einfach alles samt xml-Code in ausgegeben.
Speichere ich allerdings die Formulardaten in eine XML-Datei, reagiert Excel schon freundlicher und bietet mit zumindest an, die Datei als XLS-Arbeitsmappe zu öffnen.
Allerdings bleiben ein paar Ungereimtheiten übrig.
Zunächst werden sowohl Header als und Footer nicht mit ausgegeben,
Dann noch dieser Fehler - und zwar sowohl beim Öffnen in Excel, als auch bei Öffnen mit dem Firefox.
Firefox:
XML-Verarbeitungsfehler: Präfix nicht an einen Namespace gebunden
Adresse: http://www.meine- domain.de/ergebnis.xml
Zeile Nr. 1, Spalte 12:
<Row><Cell><Data ss:Type="String">Montag, 13. April 2015, 11:53 Uhr</Data></Cell><Cell><Data ss:Type="String">Alten und Krankenpflege</Data></Cell><Cell><Data ss:Type="String">asd asd</Data></Cell><Cell><Data ss:Type="String">asd</Data></Cell><Cell><Data ss:Type="String">Nicht bestanden!</strong></Data></Cell></Row>
Excel
Diese Datei kann nicht geöffnet werden, weil:
Verweis auf ein nicht deklariertes Namespace-Prefix: ss
Zeile 1, ...
Ich dachte zunächst, es hätte mit einigen Leerzeichen zu tun, denn nach dem Entfernen hat sich zumindest die Postion / Spalte, auf die sich die Fehlermeldung bezieht, verändert. AUßerdem hat die Tabelle nur 5 Spalten, keine 12.
PS: Zum Testen habe ich den Header erstmal 1:1 von Klenkes übernommen.
Beitrag geändert von antibart (13. April 2015 11:14)
Offline
#8 13. April 2015 11:22
- Klenkes
- Server-Pate
- Ort: 89428 Syrgenstein
- Registriert: 17. Dezember 2010
- Beiträge: 1.437
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Ich glaube mit Spalte 12 ist nicht die Excelspalte gemeint, sondern Zeichen 12. Das wäre die öffnende eckige Klammer: <Data
Ich hatte auch definitiv eine .xls Endung geschrieben. Allerdings war mein Excel eine 2003 Version. Die Bearbeiter der Website haben sicherlich ein neueres Office, haben aber nie geklagt.
Offline
#9 13. April 2015 11:34
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Aaah danke. Jetzt verstehe ich auch das ------^ was im Browser unterhalb der Fehlermeldung befindet. Das zeigt nämlich auf die Position.
Ist das normal, dass der Header nicht ausgegeben wird, wenn ich die xls-Datei in einem Editor öffne? Die Datei beginnt erst mit der <Row> im Hauptemplate.
Ed: Ich fang nochmal von vorn an. Erst mal mit nur einer Spalter. Ist ja oft nicht der schlechteste Weg.
Beitrag geändert von antibart (13. April 2015 11:59)
Offline
#10 13. April 2015 12:31
- Klenkes
- Server-Pate
- Ort: 89428 Syrgenstein
- Registriert: 17. Dezember 2010
- Beiträge: 1.437
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Ist das normal, dass der Header nicht ausgegeben wird, wenn ich die xls-Datei in einem Editor öffne? Die Datei beginnt erst mit der <Row> im Hauptemplate.
So lange dein Editor nicht selbständig den Header entfernt(warum auch immer), sollte der natürlich sichtbar sein.
Ist ja nur eine Textdatei!
Wenn der Header fehlt kommt es natürlich zu Fehlermeldungen.
Offline
#11 13. April 2015 13:22
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Ja.
Egal, was ich in den Header schreibe: da wird nichts geliefert. Footer geht.
Tja - ist das jetzt ein Bug im Modul? Dann ich natürlich lange validieren. Mal googeln und in den Bugtracker gucken. Oder erstmal, ob der autogenerierte Header was ausgibt.
EDIT: Jou, da stimmt was nicht. Auch der automatische Beispielheader mit einer gewöhnlichen txt-Dtaei wird nicht übermittelt.
Beitrag geändert von antibart (13. April 2015 13:34)
Offline
#12 13. April 2015 14:33
- Klenkes
- Server-Pate
- Ort: 89428 Syrgenstein
- Registriert: 17. Dezember 2010
- Beiträge: 1.437
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Aha! Ich hab da noch FormBuilder 0.7.3. Der lief sehr stabil.
Offline
#13 13. April 2015 15:00
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Bei mir lief bis eben auch noch 0.7.3 .. aber auch ein Update brachte nichts. CMSMS ist Vs. 1.11.11.
Ich war mal so mutig und habe das als Bug getrackt.
Beitrag geändert von antibart (13. April 2015 17:06)
Offline
#14 14. April 2015 09:19
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Grmpf. Im Bugtracker gibt es eine ebenfalls recht neue Meldung, die sich auch auf den Header bezieht.
------------------
Summary:
PHP Notice in DispositionFile.class
Detailed Description:
I'm using the field to write into a CSV file.
But I receive the following message/notice :
Undefined variable: header in
modules/FormBuilder/classes/DispositionFile.class.php on line 115
This can be corrected by adding this line
$header = '';
in the function DisposeForm,line 55
-----------------------
Leider bekomme ich keine Fehlermeldung und diese Modifizierung hat auch nichts gebracht. Außerdem ist die Variable (mittlerweile?) definiert:
$header = $this->GetOption('file_header','');
Ich stehe vor einem Rätsel. Letzter Versuch: Update von CMSMS 1.11.11 auf 1.11.13
Beitrag geändert von antibart (14. April 2015 09:31)
Offline
#15 14. April 2015 10:56
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Ich bin aus Verzeiflung jetzt beim Formbrowser gelandet. Das scheint nicht sooo schlecht zu sein.
Offline
#16 14. April 2015 11:22
- Klenkes
- Server-Pate
- Ort: 89428 Syrgenstein
- Registriert: 17. Dezember 2010
- Beiträge: 1.437
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Ich bin aus Verzeiflung jetzt beim Formbrowser gelandet. Das scheint nicht sooo schlecht zu sein.
Der wird doch aber auch nicht mehr weiter gepflegt?
Ersatz dafür sollte ListIt2 sein...(funktionierte für mich nicht)
Doch das ist jetzt auch tot.
Warten auf EasyList.
Ich fand den Formbrowser auch gut. Ich hatte damit schon komplexe PDF Rechnungen für's Backend erstellt. Da der Formbrowser tot ist, bin ich schon fast froh, dass die Kundenwebsite nicht mehr existiert. Ich hätte keinen Ersatz gewusst...
Offline
#17 14. April 2015 12:23
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Es hat auch keinen Sinn mit dem Form Browser, weil der die Ausgabebedingungen aus dem Formular, die ich da rein geschrieben habe, nicht mitnimmt.
Ich verstehe das auch nicht. Es wäre alles prima und so einfach, wenn dieses verdammte Feld "in eine Datei schreiben" einen Header ausgeben würde.
Kannst du mir noch mal sagen, welche CMSMS-Version du benutzt hast? Vielleicht hilft ja downgraden.
Beitrag geändert von antibart (14. April 2015 12:25)
Offline
#18 14. April 2015 12:58
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Aber halt: wenn das Feld zuverlässig keinen Header erzeugt – dann könnte ich ihn ja einfach selbst eintragen. :gruebel:
Wenn ich Pech habe, setzt er den Datensatz drüber. Aber ich halte mich an jedem Strohhalm fest.
EDIT: Ich glaubs ja nicht. Scheint zu funktionieren. HURRA!!
Beitrag geändert von antibart (14. April 2015 14:03)
Offline
#19 14. April 2015 16:44
- Klenkes
- Server-Pate
- Ort: 89428 Syrgenstein
- Registriert: 17. Dezember 2010
- Beiträge: 1.437
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Wenn du alle neuen Datensätze in die gleiche Datei schreibst, fasst er meines Wissens den Header nicht mehr an.
Offline
#20 14. April 2015 18:56
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Ersatz dafür sollte ListIt2 sein...(funktionierte für mich nicht)
Doch das ist jetzt auch tot.
Und mit der neuen Security-Funktionalität in der 1.12 scheint es da auch richtig zu knallen. Da brauchen wir gar nicht auf die 2.0 zu warten ...
http://forum.cmsmadesimple.org/viewtopi … =7&t=72707
Bin mir ziemlich sicher, dass da noch weitere Module folgen werden ...
Beitrag geändert von Andynium (15. April 2015 20:29)
Offline
#21 14. April 2015 18:58
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Ich fand den Formbrowser auch gut. Ich hatte damit schon komplexe PDF Rechnungen für's Backend erstellt. Da der Formbrowser tot ist, bin ich schon fast froh, dass die Kundenwebsite nicht mehr existiert. Ich hätte keinen Ersatz gewusst...
Was genau funktioniert denn da nicht mehr?
Denn PDF-Rechnungen im Backend klingt für mich interessant .
Offline
#22 15. April 2015 09:56
- Klenkes
- Server-Pate
- Ort: 89428 Syrgenstein
- Registriert: 17. Dezember 2010
- Beiträge: 1.437
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Was genau funktioniert denn da nicht mehr?
Naja, funktioniert mit CMSMS 1.11.x schon noch, aber es wäre eben nicht besonders zukunftssicher, wenn FormBrowser nicht weiter entwickelt wird.
Der Wortlaut war in etwa so: Formbrowser wird eingestellt... zu Gunsten von ListIt2... Datensätze können in ListIt2 Tabellen exportiert werden.
Denn PDF-Rechnungen im Backend klingt für mich interessant
.
Ich hatte dazu tcpdf eingebunden und in der "Admin List Template" nach dem EDIT Button einen PDF Button eingebaut, der TCPDF im Link alle Parameter für die Rechnung übergeben hatte, und damit die Datei erstellte.
Dabei hatte ich 2 PDF Links. Einen zum PDF im Browser anzeigen und einen anderen der direkt das "Speichern unter" anbietet. Bei dem Projekt war es äußerst wichtig, dass nichts von dem auf dem Server gespeichert wurde. So war es bei meinem Vorgänger, und die Dateien landeten alle bei Google
Naja, komplexe Rechnung ist vielleicht übertrieben. Hat aber schon funktioniert.
Die Website existiert aber nicht mehr.
Offline
#23 15. April 2015 10:31
- faglork
- arbeitet mit CMS/ms
- Ort: Fränkische Schweiz
- Registriert: 15. Dezember 2010
- Beiträge: 1.152
- Webseite
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Klenkes schrieb:Ersatz dafür sollte ListIt2 sein...(funktionierte für mich nicht)
Doch das ist jetzt auch tot.Und mit der neuen Security-Funktionalität in der 1.12 scheint es da auch richtig zu knallen. Da brauchen wir gar nicht auf die 2.0 zu warten ...
Äh ... wie meinen? Ich verstehe nicht.
Listit2 läuft nicht mit 1.12?
OMFG
Alex
Offline
#24 15. April 2015 11:26
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
Listit2 läuft nicht mit 1.12?
Stabil nicht ohne den Fix ...
Offline
#25 15. April 2015 12:59
- faglork
- arbeitet mit CMS/ms
- Ort: Fränkische Schweiz
- Registriert: 15. Dezember 2010
- Beiträge: 1.152
- Webseite
Re: [GELÖST] Formbuilder-Eingaben an CVS/Excel übergeben
faglork schrieb:Listit2 läuft nicht mit 1.12?
Stabil nicht ohne den Fix ...
Fix ...? Hab ich was verpasst?
Sorry, steh aufm Schlauch.
Servus,
Alex
Offline