Seite 1 von 1

Excel / CSV numerische Felder

Verfasst: Mo, 25. Feb 2019 13:19
von adrian
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

Re: Excel / CSV numerische Felder

Verfasst: Mo, 25. Feb 2019 13:43
von brandelh
keine Blanks zwischen den Feldtrennern, Punkt oder Komma mal vertauschen ...

Re: Excel / CSV numerische Felder

Verfasst: Mo, 25. Feb 2019 13:47
von Tom
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?

Re: Excel / CSV numerische Felder

Verfasst: Mo, 25. Feb 2019 13:51
von adrian
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) 288-mal heruntergeladen
Ziel ist es z.B. in Excel eine Spaltensumme zu erzeugen (in List&Label kein Problem)

Adrian

Re: Excel / CSV numerische Felder

Verfasst: Mo, 25. Feb 2019 13:54
von adrian
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

Re: Excel / CSV numerische Felder

Verfasst: Mo, 25. Feb 2019 14:03
von Tom
Ü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",";")

Re: Excel / CSV numerische Felder

Verfasst: Mo, 25. Feb 2019 14:21
von Tom
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.

Re: Excel / CSV numerische Felder

Verfasst: Mo, 25. Feb 2019 14:50
von adrian
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

Re: Excel / CSV numerische Felder

Verfasst: Mo, 25. Feb 2019 15:14
von Tom
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.)

Re: Excel / CSV numerische Felder

Verfasst: Mo, 25. Feb 2019 15:38
von adrian
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