SAP Jobsuche bei DV-Treff
ahelm
  • ahelm
  • SAP Forum - Guru Thema Starter
vor 8 Jahre
Hallo zusammen,

ich habe ein leicht diffiziles Problem beim Laden von Exceldateien mit mehreren Arbeitsblättern, vielleicht hat hier jemand eine Idee.

Für das Dateiladen habe ich eine kleine Klasse gebastelt, die im wesentlichen 2 relevante Methoden zur Verfügung stellt:

  1. GET_WORKSHEETS: Diese gibt eine STRINGTAB mit den Namen der Tabellenblätter einer Exceldatei zurück. Dazu wird das Excel OLE Objekt verwendet

  2. LOAD: Diese Methode lädt die Daten aus dem angegebenen Tabellenblatt, das mit dem Namen übergeben wird, und gibt sie in einer internen Tabelle zurück

Jetzt zum Problem: Alles funktioniert wunderbar, außer ein Anwender hat im Namen des Tabellenblattes ein nachfolgendes Leerzeichen eingegeben: "Blatt 1 ". Die Methode GET_WORKSHEETS verwendet die Eigenschaft ITEM um auf die einzelnen Worksheets zuzugreifen und die Eigenschaft NAME um den Namen zu ermitteln:


data:
  L_NAME type STRING.

get property of WORKSHEET 'NAME' = L_NAME.

Beim Beispiel steht danach in der Variablen L_NAME der Text "Blatt 1" (und nicht "Blatt 1 "). Gibt es eine Möglichkeit, auf einfachem Weg das nachfolgende Leerzeichen hier zu erhalten?

Für jede Hilfe wäre ich dankbar,

lg Andreas

wreichelt
vor 8 Jahre
Hallo,

schaue dir mal bitte den Befehl CONCATENATE an

... RESPECTING BLANKS

Wirkung

Der Zusatz RESPECTING BLANKS ist nur bei der Zeichenkettenverarbeitung erlaubt und bewirkt, dass die schließenden Leerzeichen bei den Datenobjekten dobj1 dobj2 ... bzw. den Zeilen der internen Tabelle itab berücksichtigt werden. Ohne den Zusatz ist dies nur beim Datentyp string der Fall.

Hinweis

Mit dem Zusatz RESPECTING BLANKS kann die Anweisung CONCATENATE verwendet werden, um beliebige Zeichenketten text unter Berücksichtigung der schließenden Leerzeichen an Zielfelder str vom Typ string zuzuweisen: CLEAR str. CONCATENATE str text INTO str RESPECTING BLANKS.

Concatenate feld into L_name RESPECTING BLANKS.

Gruß

Wolfgang

ahelm
  • ahelm
  • SAP Forum - Guru Thema Starter
vor 8 Jahre
Hallo Wolfgang,

danke für die Antwort. Den Zusatz RESPECTING BLANKS beim CONCATENATE kenne ich, das Problem hier ist, dass schon beim OLE Aufruf GET PROPERTY direkt das Leerzeichen am Ende des Strings nicht da ist. Da habe ich in meinem ABAP Code mit der Variablen noch gar nichts gemacht. Ich befürchte ja, dass es keine einfache Lösung gibt mit einem anderen Datentyp und Excel bietet anscheinend auch nicht die Möglichkeit, die Länge des Namens eines Worksheets per OLE abzufragen...

lg Andreas