Excel / CSV numerische Felder

Moderator: Moderatoren

Antworten
Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 197
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Kontaktdaten:

Excel / CSV numerische Felder

Beitrag von adrian » Mo, 25. Feb 2019 13:19

Hallo zusammen

Wir haben das Problem, dass wir bei einem Export von Tabellen in CSV / XLS Dateien, danach in Excel nicht "rechnen" können.

Daher, die Daten werden exportiert, diese kann ich in Excel öffnen oder importieren. Ich kann auch versuchen die Spalten in Excel auf numerisch zu setzen, doch es bringt alles nichts, ich kann mit diesen Zellen nicht weiterarbeiten.

Aus xBase++ übergebe ich die Felder als numerische Felder nach List&Label und formatiere diese innerhalb List&Label. Daher: List&Label soltle wissen, dass die Felder numerisch sind.

Hat da jemand von Euch einen Tip?

es Grüessli

Adrian

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14799
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Excel / CSV numerische Felder

Beitrag von brandelh » Mo, 25. Feb 2019 13:43

keine Blanks zwischen den Feldtrennern, Punkt oder Komma mal vertauschen ...
Gruß
Hubert

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7690
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Excel / CSV numerische Felder

Beitrag von Tom » Mo, 25. Feb 2019 13:47

Hallo, Adrian.

Nein, L&L sollte das nicht wissen, sondern es erfährt es über die Typisierung beim Publizieren der Daten. Du kannst numerische Inhalte als Text oder als Zahl übergeben. Wenn Du schon im Programm formatierst, übergibst Du sie als Text.

Aber. Wenn Du aus einem Formular heraus exportierst, wird immer im Textformat exportiert, hinzukommt die Formatierung in der Tabelle (also im Formular). Wenn dort z.B. ein FStr$(NumerischesFeld,"##.###&,##") gesetzt ist, wird die Zahl mit Tausenderpunkt und Dezimalkomma formatiert und auch so als CSV exportiert. Damit kann Excel tatsächlich nix anfangen.

Hast Du ein Stückchen CSV-Beispiel?
Herzlich,
Tom

Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 197
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Kontaktdaten:

Re: Excel / CSV numerische Felder

Beitrag von adrian » Mo, 25. Feb 2019 13:51

Nun, wenn ich eine CSV Datei direkt erstelle, ist dies alles ja kein Problem, es geht nur um den Export aus List&Label in eine CSV oder Excel Datei.

Da werden alle Felder als Textfelder exportiert, was ja kein Problem wäre, ich könnte diese ja einfach umformatieren. Doch dies geht eben auch nicht.

Ich habe hier mal eine kleine Datei beigelegt.
export.csv
(1018 Bytes) 23-mal heruntergeladen
Ziel ist es z.B. in Excel eine Spaltensumme zu erzeugen (in List&Label kein Problem)

Adrian

Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 197
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Kontaktdaten:

Re: Excel / CSV numerische Felder

Beitrag von adrian » Mo, 25. Feb 2019 13:54

Hoi Tom

Bei mir im Source habe ich die folgende Formatierung:

LlDefineFieldExt(hJob,"INH_JAHR3",Str(aStatistik[nZ][5],10,2),LL_NUMERIC,NIL)

Adrian

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7690
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Excel / CSV numerische Felder

Beitrag von Tom » Mo, 25. Feb 2019 14:03

Übergibt mal die Werte getrimmt - LTrim(Str( ...))) -, außerdem musst Du als SeparatorChar im CSV-Exportmodul das Semikolon setzen:

Code: Alles auswählen

LlXSetParameter(xJob,LL_LLX_EXTENSIONTYPE_EXPORT,"TXT","TXT.SeparatorChar",";")
Herzlich,
Tom

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7690
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Excel / CSV numerische Felder

Beitrag von Tom » Mo, 25. Feb 2019 14:21

Ich sehe gerade, L&L gurkt da noch lauter Zero-Character zwischen, weil standardmäßig im UTF-16 übergeben wird. Diese Option schafft Abhilfe:

Code: Alles auswählen

LlXSetParameter(xJob,LL_LLX_EXTENSIONTYPE_EXPORT,"TXT","TXT.Charset","ANSI")
Dann lassen sich Deine Daten auch importieren.
Herzlich,
Tom

Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 197
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Kontaktdaten:

Re: Excel / CSV numerische Felder

Beitrag von adrian » Mo, 25. Feb 2019 14:50

Cool Tom, genau das wars.

Dann kann ich das Ticket bei Combit schliessen, die hatten nicht wirklich eine brauchbare Lösung.

Nun noch ein Zusatzproblem. Gibt es eine Möglichkeit, beim Export die Tausender-Trennzeichen zu entfernen? Bei Felder unter 1000.00 klappt es wunderbar.

Die Formatierungs-Zeichen werden ja nur für List&Label Ausgaben benötigt (einfachere Lesbarkeit) doch beim export kann dies weggelassen werden.

Adrian

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7690
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Excel / CSV numerische Felder

Beitrag von Tom » Mo, 25. Feb 2019 15:14

Hallo, Adrian.

Freut mich!

Bezüglich des Tausenderzeichens sehe ich die Möglichkeit, die Formatierung im Formular abhängig davon zu machen, ob Du gerade ausdruckst oder exportierst - das müsstest Du über eine Variable steuern, wenn Du das in der Druckroutine weißt. Und dann packst Du in die Tabellenzelle einfach so etwas:

Statt beispielsweise

Code: Alles auswählen

FStr("###,##&.&&",nMeineZahl)
dies hier:

Code: Alles auswählen

IF(ExportFlag="ja",FStr("#####&.&&",nMeineZahl),FStr("###,##&.&&",nMeineZahl))
"ExportFlag" wird über LlDefineVariable gesetzt, abhängig davon, ob gedruckt oder exportiert wird.

(Edit: Korrektur - die Abfrage war verkehrtherum.)
Herzlich,
Tom

Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 197
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Kontaktdaten:

Re: Excel / CSV numerische Felder

Beitrag von adrian » Mo, 25. Feb 2019 15:38

Ja, so geht es sicherlich, daher List&Label dies entsprechend zu übergeben, aber da ich dem Kunden die Möglichkeit gebe die Ausgabe selber zu bestimmen (Drucken, Export auf Excel, CSV etc.) kann ich dies nicht voraus anpassen.

Ich Frage mal betreffend diesem Thema List&Label an, und werde für den Übergang die Darstellungs-Formatierung im Formular rausnehmen.

Eventuell gibt es auch in List&Label eine Variabel, welche angibt ob exportiert wird oder nicht.

Aber Danke, hast mir schon viel geholfen.

Adrian

Antworten