AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Excel Zahl als Text interpretieren lassen

Excel Zahl als Text interpretieren lassen

Ein Thema von Mongfice · begonnen am 19. Jun 2009 · letzter Beitrag vom 19. Jun 2009
Antwort Antwort
Mongfice

Registriert seit: 26. Feb 2009
40 Beiträge
 
Delphi 7 Professional
 
#1

Excel Zahl als Text interpretieren lassen

  Alt 19. Jun 2009, 09:11
Moin.
Ich hab jetzt schon einige Zeit lang gesucht und auch diverse Hinweise zur Formatierung gefunden, nur funktioneren die irgendwie alle nicht.

Ich hab folgendes Problem (gekürzt auf die problematischen Stellen):

Ich exportiere Daten aus meiner Datenbank nach Excel...
Delphi-Quellcode:
for i:=0 to RecordCount - 1 do
begin
  Excel.Cells[i+5,1].Value:=FieldByName('ID').AsString;
  next;
end;
Die ID ist auch in der DB als Integer gespeichert, wird aber auf Grund eines Tipps den ich hier schon gelesen habe absichtlich als String übergeben...

Beim Import der gleichen Daten nutze ich folgenden Code:
Delphi-Quellcode:
repeat
  edit;
  Fieldbyname('ID').AsString:= ActiveSheet.Cells.Item[x, 'A'].Value;
  Post;
  Inc(x, 1);
until ActiveSheet.Cells.Item[x, 'A'].Value='';
Das Problem an der Geschichte ist, dass ich bei der Abbruchbedingung die Meldung bekomme, dass eine Variante des Typs "String" nicht in eine Variante des Typ "Double" umgewandelt werden konnte - da die Zellformatierung noch auf "Standard" steht, interpretiert Excel das fröhlich doch als Zahl...

Was ich brauche ist also entweder eine Möglichkeit die Spalte mit den IDs fest als Text interpretieren zu lassen - was vermutlich die einfachste Lösung wäre, zu der ich aber bisher noch nix gefunden habe), oder aber eine andere Möglichkeit festzustellen, wann das Ende der Daten erreicht ist (alle anderen Spalten enthalten zwar auf jeden Fall Text, dieser kann aber auch leer sein ) Außerdem beginnen die eigentlichen Daten erst in Zeile 5, vorher sind Header-Infos drin, wo halt auch einige Spalten/Zeilen dann keine Daten enthalten...

Gruß
Mongfice
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

Re: Excel Zahl als Text interpretieren lassen

  Alt 19. Jun 2009, 09:24
Hallo,

mal schmutzig hingeschrieben:
Delphi-Quellcode:
var
       iTest : Integer;
...
repeat
  edit;
  Fieldbyname('ID').AsString:= ActiveSheet.Cells.Item[x, 'A'].Value;
  Post;
  Inc(x, 1);
  // Eine Zahl in Value sollte eigentlich auch als String gelesen werden können,
  // so dass hier eine Konvertierung String nach Integer möglich sein sollte.
  // Ist diese nicht möglich, so wird -1 geliefert, was wir als Abbruchbedingung
  // nutzen können.
  iTest := StrToIntDef(ActiveSheet.Cells.Item[x, 'A'].Value,-1);
until iTest = -1;
Achso: Nicht getestet, nur mal so als Workaround gedacht, eventuell hilfts ja.
  Mit Zitat antworten Zitat
Mongfice

Registriert seit: 26. Feb 2009
40 Beiträge
 
Delphi 7 Professional
 
#3

Re: Excel Zahl als Text interpretieren lassen

  Alt 19. Jun 2009, 09:38
Mhh, dafür das es Quick&Dirty war, funktioniert es ziemlich gut ^^

Auf das "StrToIntDef" bin ich gar nicht gekommen

Wiedermal viel zu kompliziert gedacht von mir...
Danke!

Trotzdem würd mich die Frage noch interessieren, ob/wie ich den "Zelltyp" beim Export direkt festlegen kann - und zwar ohne dass Excel da noch irgendwas dran rum interpretieren kann/will.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Excel Zahl als Text interpretieren lassen

  Alt 19. Jun 2009, 10:42
Zitat von Mongfice:
Trotzdem würd mich die Frage noch interessieren, ob/wie ich den "Zelltyp" beim Export direkt festlegen kann - und zwar ohne dass Excel da noch irgendwas dran rum interpretieren kann/will.
[Range-Objekt].NumberFormat := '@'; Das Range-Objekt kann eine einzelne Zelle, aber auch eine ganze Spalte, Zeile oder das ganze Arbeitsblatt sein.
Andreas
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf