echte Excel-Datei komplett importieren

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

echte Excel-Datei komplett importieren

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Hallo Abap-Gemeinde,

ich hab hier ein kleines Problem.

Ich verwende den FuBa 'ALSM_EXCEL_TO_INTERNAL_TABLE' um eine *.xls Datei einzulesen. Dies klappt auch wunderbar, allerdings hab ich das Problem, dass wenn in dem XLS File Spalten 'ausgeblendet' sind, dann werden die auch nicht übernommen.

Was kann ich tun, dass ich wirklich 100%ig alle Daten ins SAP lese?
Gibt es da ein anderen FuBa?
Kann ich da noch irgendwelche Parameter abfragen?

EDIT: Das gleiche gilt auch, wenn Filter im Excel gesetzt sind.

Es kann doch nicht sein, dass ich die Daten nicht lesen kann, wenn diese im Excel ausgeblendet bzw. durch filter unterdrückt wurden. Ich mein die Daten selbst sind ja da...werden ja nicht gelöscht.


Wäre schon recht wichtig für mich...danke für jede Hilfe
Thx 4 help

Gruß
Markus

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von TakerOne (Specialist / 102 / 0 / 3 ) »
Hallo,

Dieser Baustein hat den Vorteil, daß im Report eine Empfangstabelle definiert wird, die direkt komplett gefüllt wird.

Bei dem von dir verwendeten Baustein muss Feld für Feld übertragen werden.

Möglicherweise hilft dir das ja.

Beispiel:

Code: Alles auswählen.

REPORTtest_excelimport.

TYPE-POOLS: truxs.

TYPES:
  BEGIN OF  ty_tab,
    f1   TYPE char10,
    f2   TYPE char10,
    f3   TYPE char10,
  END OF ty_tab.

DATA:
  tab        TYPE STANDARD TABLE OF ty_tab,
  datei(60)  TYPE c .

datei = 'C:\temp\test1.xls'.

CALL FUNCTION 'FILE_READ_AND_CONVERT_SAP_DATA'
  EXPORTING
    i_filename                 = datei
    i_servertyp                = 'OLE2'
    i_fileformat               = 'XLS'
*   I_FIELD_SEPERATOR          =
    i_line_header              = 'X'
* IMPORTING
*   E_BIN_FILELENGTH           =
 TABLES
   i_tab_receiver             = tab
 EXCEPTIONS
   file_not_found             = 1
   close_failed               = 2
   authorization_failed       = 3
   open_failed                = 4
   conversion_failed          = 5
   OTHERS                     = 6
          .
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Alternativ dazu: FILE_READ_AND_GET_TAB mit Dialog zur Abfrage der Eingabedatei.
Ich bin eigentlich ein sehr netter Mensch.
Wenn ich Freunde hätte, könnten diese es bestätigen. :-)

Beitrag von m.schwertle (ForumUser / 94 / 0 / 0 ) »
Hey, der Hinweis ist wirklich gut (da ich auch gerade mit Excel Imports arbeite). Allerdings ist darauf hinzuweisen, dass zum Teil frappierende Performanceunterschiede zu verzeichnen sind.

Ich habe testhalber mal mit 4 Spalten und 10'000 Zeilen gearbeitet. Das zeitliche Verhältnis

ALSM_EXCEL_TO_INTERNAL_TABLE : FILE_READ_AND_CONVERT_SAP_DATA

ist (in meinem Fall) etwa 1 : 6. Also muss man da echt ganz genau abwägen.

Gruss, Martin

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Ich hab dem Kunden gesagt, dass es gewährleistet sein muss, dass kein Filter bzw. Spalten ausgeblendet sind, um dann ein Upload des Excel-Files zu machen.

Man kann ja nicht alles machen :roll:

Der ALSM Baustein ist schon ziemlich langsam, wenn der andere noch langsamer ist, brauch ich den gar nicht testen.

Thx allen.

gruß
Markus

Beitrag von m.schwertle (ForumUser / 94 / 0 / 0 ) »
Allerdings bringt der FILE_READ_AND_CONVERT_SAP_DATA-Baustein gleich ein schnell bearbeitbares Format zustande. Während das Format des ALSM_EXCEL_TO_INTERNAL_TABLE-Bausteins ja wirklich - Verzeihung - bescheuert ist.

Bevor ich da einen komplexen Workaround entwickle, nehme ich lieber den (noch) langsame(re)n Baustein. Oder habt ihr da ne schnelle, einfache Routine, die ihr preisgeben möchtet?

:wink:

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
m.schwertle hat geschrieben:Allerdings bringt der FILE_READ_AND_CONVERT_SAP_DATA-Baustein gleich ein schnell bearbeitbares Format zustande. Während das Format des ALSM_EXCEL_TO_INTERNAL_TABLE-Bausteins ja wirklich - Verzeihung - bescheuert ist.

Bevor ich da einen komplexen Workaround entwickle, nehme ich lieber den (noch) langsame(re)n Baustein. Oder habt ihr da ne schnelle, einfache Routine, die ihr preisgeben möchtet?

:wink:
Da hast du recht, sieht bisserle doof aus, wie man es zurückbekommt.
Aber kann man ziemlich einfach in ein 'normales' format bekommen.
hier etwas coding ;)

Code: Alles auswählen.


  FIELD-SYMBOLS:
        <lfs_comp>          TYPE ANY.


  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      filename                = lf_file
      i_begin_col             = 1
      i_begin_row             = 2
      i_end_col               = 21
      i_end_row               = 65535
    TABLES
      intern                  = gt_exceldat
    EXCEPTIONS
      inconsistent_parameters = 1
      upload_ole              = 2
      OTHERS                  = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.


  LOOP AT gt_exceldat INTO gf_exceldat.

    ASSIGN COMPONENT gf_exceldat-col OF STRUCTURE gf_excel TO <lfs_comp>.

* man kann gleich anpassungen vornehmen, wie z.b. Feldinhalte nach 
* wunsch kürzen, bzw. ungewünschte Werte löschen. etc. etc.
    IF gf_exceldat-col EQ '9'.
      IF gf_exceldat-value(1) = 'M'.
        CLEAR:gf_exceldat-value(1).
        CONDENSE gf_exceldat-value NO-GAPS.
      ENDIF.
    ENDIF.


    <lfs_comp> = gf_exceldat-value.

    AT END OF row.
        APPEND gf_excel TO gt_excel.
        CLEAR gf_excel.
    ENDAT.

  ENDLOOP.

gf_Excel ist eine Struktur die ich im Programm definiert habe.
DATA: begin of gf_excel,
.
.
.
end of gf_excel.

Die Struktur beinhaltet die Felder, welche aus dem Excel kommen sollten.
Hoffe es ist verständlich und hilft ;)

Gruß
Markus

Seite 1 von 1

Vergleichbare Themen

5
Antw.
2793
Views
txt Datei mit Feldtrennzeichen '}' importieren
von Hagbard » 10.08.2005 16:30 • Verfasst in ABAP® für Anfänger
1
Antw.
1165
Views
Echte Fremdschlüsselbeziehung
von Gast » 20.12.2004 10:55 • Verfasst in ABAP® Core
4
Antw.
2395
Views
Excel-Datei anzeigen
von khb » 17.02.2009 14:47 • Verfasst in ABAP® Core
4
Antw.
3644
Views
Excel-Datei als PDF speichern
von klaus1704 » 25.07.2013 15:33 • Verfasst in ABAP Objects®
2
Antw.
2478
Views
Excel Datei öffnen
von lernen.2007 » 19.01.2008 11:58 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.