AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Excel,Spaltenkonvertierung, Übergang zu nächstem Buchstaben
Thema durchsuchen
Ansicht
Themen-Optionen

Excel,Spaltenkonvertierung, Übergang zu nächstem Buchstaben

Ein Thema von Khanysha · begonnen am 8. Sep 2015 · letzter Beitrag vom 9. Sep 2015
Antwort Antwort
nahpets
(Gast)

n/a Beiträge
 
#1

AW: Excel,Spaltenkonvertierung, Übergang zu nächstem Buchstaben

  Alt 8. Sep 2015, 16:13
Es hat mir keine Ruhe gelassen, deshalb noch 'ne kürzere Variant
Delphi-Quellcode:
program ExcelSpalten;

function MS_EXCEL_ConvertColumn(AColumn: Integer): String;
begin
  if (AColumn < 1) or (AColumn > 16384) then begin
    Result := Format('ungültige Spaltenposition (%d)',[AColumn]);
  end else while AColumn > 0 do begin
    if AColumn mod 26 = 0 then begin
      Result := 'Z' + Result;
      AColumn := AColumn - 1;
    end else begin
      Result := Chr((AColumn mod 26) + 64) + Result;
    end;
    AColumn := AColumn div 26;
  end;
end;

var
        i : Integer;
begin
  // Spaltenbezeichnungen können von 1 -> A bis 16384 -> XFD vergeben werden.
  for i := 0 to 16385 do WriteLn(MS_EXCEL_ConvertColumn(i));
end.
  Mit Zitat antworten Zitat
Khanysha

Registriert seit: 11. Jun 2015
Ort: Dunkeldeutschland
23 Beiträge
 
Delphi 7 Professional
 
#2

AW: Excel,Spaltenkonvertierung, Übergang zu nächstem Buchstaben

  Alt 9. Sep 2015, 06:54
Es hat mir keine Ruhe gelassen, deshalb noch 'ne kürzere Variant
Delphi-Quellcode:
program ExcelSpalten;

function MS_EXCEL_ConvertColumn(AColumn: Integer): String;
begin
  if (AColumn < 1) or (AColumn > 16384) then begin
    Result := Format('ungültige Spaltenposition (%d)',[AColumn]);
  end else while AColumn > 0 do begin
    if AColumn mod 26 = 0 then begin
      Result := 'Z' + Result;
      AColumn := AColumn - 1;
    end else begin
      Result := Chr((AColumn mod 26) + 64) + Result;
    end;
    AColumn := AColumn div 26;
  end;
end;

var
        i : Integer;
begin
  // Spaltenbezeichnungen können von 1 -> A bis 16384 -> XFD vergeben werden.
  for i := 0 to 16385 do WriteLn(MS_EXCEL_ConvertColumn(i));
end.
So in dieser Art hab ich es nun auch Habe gestern noch den Fall von Negativzahlen und MaxSpalten abgefangen, ich habe zwar keine Ahnung wer so eine breite Tabelle hat aber man weiß ja nie. Darum mache ich ja die Unittests, um auf Grenzen und Fehlerfälle zu prüfen ̶ ̶̶m̶̶u̶̶s̶̶s̶̶ ̶̶s̶̶t̶̶a̶̶t̶̶t̶̶ ̶̶d̶̶e̶̶m̶̶ ̶̶o̶̶r̶̶ ̶̶n̶̶i̶̶c̶̶h̶̶t̶̶ ̶̶e̶̶i̶̶n̶̶ ̶̶u̶̶n̶̶d̶̶ ̶̶r̶̶e̶̶i̶̶n̶̶?̶̶ ̶̶w̶̶e̶̶i̶̶l̶̶ ̶̶i̶̶n̶̶ ̶̶d̶̶e̶̶i̶̶n̶̶e̶̶m̶̶ ̶̶f̶̶a̶̶l̶̶l̶̶ ̶̶k̶̶a̶̶n̶̶n̶̶ ̶̶i̶̶c̶̶h̶̶ ̶̶d̶̶o̶̶c̶̶h̶̶ ̶̶n̶̶e̶̶g̶̶a̶̶t̶̶i̶̶v̶̶e̶̶ ̶̶z̶̶a̶̶h̶̶l̶̶e̶̶n̶̶ ̶̶e̶̶i̶̶n̶̶t̶̶r̶̶a̶̶g̶̶e̶̶n̶̶ ̶̶o̶̶d̶̶e̶̶r̶̶?̶̶ ̶̶d̶̶3̶̶e̶̶n̶̶k̶̶e̶̶ ̶̶i̶̶c̶̶h̶̶ ̶̶d̶̶a̶̶ ̶̶n̶̶u̶̶n̶̶ ̶̶i̶̶n̶̶ ̶̶d̶̶i̶̶e̶̶ ̶̶f̶̶a̶̶l̶̶s̶̶c̶̶h̶̶e̶̶ ̶̶r̶̶i̶̶c̶̶h̶̶t̶̶u̶̶n̶̶g̶̶,̶̶ ̶̶w̶̶o̶̶r̶̶t̶̶w̶̶ö̶̶r̶̶t̶̶l̶̶i̶̶c̶̶h̶̶?̶


Vergiss das mit dem Und... hatte noch keinen Kaffee und habe die nächste Zeile beim 3.Mal erst realisiert.
LG
Lizzy

Geändert von Khanysha ( 9. Sep 2015 um 06:57 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz