AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden
Thema durchsuchen
Ansicht
Themen-Optionen

Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

Ein Thema von oakley · begonnen am 19. Mai 2020 · letzter Beitrag vom 21. Jun 2020
Antwort Antwort
Seite 1 von 3  1 23      
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#1

Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 13:49
Hallo zusammen,

ich speichere ein TAdvStringgrid als Excel ab und erhalte durch nachträgliches Anpassen auch ein ordentlich formatiertes Excel Sheet.
Ich habe allerdings noch das Problem mit den Zahlen.Ich verwende:
Code:
ExcelApp := CreateOleObject('Excel.Application');
Workbook := ExcelApp.WorkBooks.Open(excelfilename);
ExcelApp.Range['A1','A1'].EntireColumn.Numberformat := '0,00';
Und die Zahl wird in der Spalte linksbündig
und mit einem kleinen grünen Dreieck angezeigt. Klicke ich darauf wird die Zahl sauber formatiert.

Ich habe hier schon das ein oder andere gefunden aber irgendwie scheint das formatieren nicht zu funktionieren oder Excel erkennt

Ich verwende Excel 365.

Viele Grüße

Mirko
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
711 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 14:05
... Und die Zahl wird in der Spalte linksbündig
Es scheint mir eher ein String zu sein. Zahlenwerte werden von Excel automatisch rechtsbündig formatiert.
Gruß, Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#3

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 14:27
Hallo Andreas,

wenn ich mit der rechten Maustaste auf die Zahl klicke und nachschaue, sehe ich, das sie als Zahl formatiert ist und oben links die Markierung für den Ablaufverfolgungsfehler angezeigt. Also das grüne Dreieck. Ich habe noch die Zeile:

Code:
ExcelApp.Range['A1','A1'].EntireColumn.Numberformat := '0,00';
nach

Code:
ExcelApp.Range['A1','A1'].EntireColumn.Numberformat := '#.##0,00';
geändert. Aber das Ergebnis ist das gleiche.

LG

Mirko
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 15:12
Das Problem ist, dass man Excel zur Neuberechnung/Evaluierung der Zelle zwingen muss. Das passiert z.B. in dem du da rein klickst. Wie man das jetzt schlau programmatisch machen kann, weiß ich auch nicht. Du könntest jetzt das rechtsbündig noch selber setzen, aber dann ist grüne Dreieck immer noch nicht weg.

https://docs.microsoft.com/de-de/off...-recalculation
Ralph

Geändert von Jumpy (19. Mai 2020 um 15:18 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#5

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 16:01
Mir stellt sich gerade die Frage: Ist das, was in A1 steht (aus Excelsicht) überhaupt eine Zahl?

Wie kommt der Wert in die Exceltabelle? Hast Du da mal etwas Code zu?

Oder mal mit ExcelApp.Range['A1','A1'].EntireColumn.Numberformat := 'Standard'; versucht?

Englisches Excel oder Deutsches?
Wie sieht es mit Tausenderpunkt und Dezimalkomma aus? Ja nach Einstellung könnte es eventuell mit ExcelApp.Range['A1','A1'].EntireColumn.Numberformat := '0.00'; bzw. ExcelApp.Range['A1','A1'].EntireColumn.Numberformat := '#,##0.00'; funktionieren.

In Excel gibt es oben, über dem Sheet doch auch die Eingabezeile, in der man (statt in 'ner Zelle) auch seine Werte, Zeichenfolgen, Zahlen, Formeln, ... eingeben kann. Wenn es sich bei Zahlen aus Excelsicht um einen String handelt, dann ist dort (in der Regel) vor der Zahl ein einzelnes Hochkomma zu finden.

In der Zelle steht die Zahl linksbündig und ist mit 'nem grünen Dreieck gekennzeichnet. In der Eingabezeile müsste dann statt 0 ein '0,00 stehen. Dort werden Zahlen auch nicht mit Nachkommastellen angezeigt, wenn sie keine enthalten. Soll also in der Zelle eine 0 stehen und nur die Darstellung mit zwei Nachkommastellen erfolgen, so darf in der Eingabezeile auch nur eine 0 stehen. Steht dort 0,00 bin ich mit (fast) sicher, dass Excel meint hier eine Zeichenfolge vorliegen zu haben. Prüf' das doch bitte mal zuerst. Solange Excel denkt, es sei eine Zeichenfolge, kannst Du Numberformat beliebig verändern, es wird sich nix wesentliches ändern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#6

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 16:49
Zitat:
Mir stellt sich gerade die Frage: Ist das, was in A1 steht (aus Excelsicht) überhaupt eine Zahl?
Nein, das sind zwei Zahlen.

Spalte A, Zeile 1


[Edit]
Ups, du meinstest den Wert in dem Feld und nicht diese Angabe "A1".
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#7

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 17:10
In A1 steht die Überschrift also ein Text.
Und es ist ein deutsches Excel.

LG

Mirko
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#8

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 17:15
Wenn in A1 Text steht, kann das mit dem Numberformat auch nicht gehen, das ist nunmal nur für Zahlen und nicht für Text.

ExcelApp.Range['A1','A1'].EntireColumn.Numberformat heißt: Setze das Zahlenformat für alle Zeilen im Bereich von A1 bis A1. Und der Bereich umfasst halt genau nur eine Zelle. Und wenn da Text drinne steht, ist das Numberformat vollkommen überflüssig, da absolut wertlos.
  Mit Zitat antworten Zitat
mmw

Registriert seit: 10. Sep 2019
Ort: OWL
322 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 17:33
Hallo,
villeicht bringt das was

Application.ErrorCheckingOptions.BackgroundCheckin g = false

siehe

https://docs.microsoft.com/de-de/off...groundchecking

Gruß
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
629 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden

  Alt 19. Mai 2020, 18:08
Das Problem ist sicher das NumberFormat. Das muss im ANSI Format angeben werden, also im Prinzip gleich wie in Delphi. Du gibst es aber im deutschen Format an. Deine Code würde hier in der Schweiz so nicht funktionieren, da wir hier ein anderes Zahlenformat haben, sprich Tausender- und Komma-Zeichen genau umgekehrt. Das ANSI Zeichen für den Tausender ist "," und für das Komma wäre es der Punkt ".". NumberFormat='#,##0.00' müsste eigentlich so funktionieren.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz