Hi,
ich überlege gerade wie man das am Besten macht. Nach den normalen Stellensystemen (Dezimal, Hexadezimal etc.) wäre die Formel etwa so:
(ASC(SUBSTR(sCol,x,1))-ASC("A")+1) * 27 ^ (x-1)
da es aber keine 0 gibt, ist der Überlauf von 26 (A) nach 27 (AA) nach obiger Formel auf 28 ...
Ich könnte ein Array mit Wertetabelle erstellen und dann mit aScan() die Position ermitteln, aber vielleicht erkennt ja jemand wie man die Formel umstellen muss ...
Oder hat jemand schon solche Umrechungsfunktionen ?
Umwandlung Excel Spalte A... in numerischen Wert ...
Moderator: Moderatoren
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Umwandlung Excel Spalte A... in numerischen Wert ...
na ja, es geht ja ratz fatz mit dieser Funktion ... 702 Spalten, das sollte genügen
Code: Alles auswählen
static aTable := NIL
if aTable = NIL
aTable := {}
for y := 0 to 26
for x := 1 to 26
if y=0
aadd( aTable,chr(x+64) )
else
aadd( aTable,chr(y+64)+chr(x+64) )
endif
next
next
endif
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Umwandlung Excel Spalte A... in numerischen Wert ...
ich verwende dasbrandelh hat geschrieben:ich überlege gerade wie man das am Besten macht. Nach den normalen Stellensystemen (Dezimal, Hexadezimal etc.) wäre die Formel etwa so:
(ASC(SUBSTR(sCol,x,1))-ASC("A")+1) * 27 ^ (x-1)
Oder hat jemand schon solche Umrechungsfunktionen ?
Code: Alles auswählen
cEnde := ZAHL2CHR(nLFcount)
oSheet:range( "A1:"+cEnde+LTRIM( STR(nLen ) ) ):value := aExcel
FUNCTION ZAHL2CHR(nLFcount)
LOCAL nMal
LOCAL cEnde
IF nLFcount > 26
nMal := INT(nLFcount/26)
IF nMal = nLFcount/26 // geändert
cEnde := CHR(nMal+64-1) + "Z" // geändert
ELSE
cEnde := CHR(nMal+64)+CHR((nLFcount-(nMal*26))+64)
ENDIF
ELSE
cEnde := CHR(nLFcount+64)
ENDIF
RETURN cEnde
Zuletzt geändert von AUGE_OHR am Mo, 16. Dez 2013 1:37, insgesamt 1-mal geändert.
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Umwandlung Excel Spalte A... in numerischen Wert ...
in der LibXL gibt es doch tatsächlich auch eingebaute Umrechnungsfunktionen, also brauche ich auf Xbase++ gar keine
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Umwandlung Excel Spalte A... in numerischen Wert ...
Eine DLL mit der man OHNE ActiveX bzw. installiertem Excel XLS oder XLSX Exceldokumente sehr schnell erzeugen kann.
Ich baue gerade Wrapper Code dafür.
http://www.libxl.com
Ich baue gerade Wrapper Code dafür.
http://www.libxl.com
Gruß
Hubert
Hubert