TXT-öffnen und als XLSX speichern
Hauptbestandteil dieses Demoprogramms ist die Methode “OpenText” mit der Text-Dateien eingelesen werden können, deren Felder durch Trennzeichen voneinader getrennt sind.
Dieser Report öffnet die Textdatei und speichert sie als XLSX-Datei wieder ab.
Es werden folgende Trennzeichen berücksichtigt:
- Tabulator
- Semikolon
- Komma
- Doppelpunkt
Sollte die zu erzeugende Datei bereits vorhanden sein, so wird sie ohne Nachfrage überschrieben. Soll der Anwender gefragt werden, ob die Datei überschrieben werden soll oder nicht, so muss
SET PROPERTY OF excel ‘DisplayAlerts’ = 1
gesetzt oder ganz weg gelassen werden (DisplayAlerts = 1 ist der Default).
Code
REPORT zz_open_text_and_save_xlsx. TYPE-POOLS ole2. *== screen PARAMETERS p_file TYPE string DEFAULT 'D:text.txt'. PARAMETERS p_saveas TYPE string DEFAULT 'D:text2'. START-OF-SELECTION. *== data DATA: excel TYPE ole2_object, workbook TYPE ole2_object, active_window TYPE ole2_object, sheet TYPE ole2_object. *== create excel application CREATE OBJECT excel 'EXCEL.APPLICATION'. *== do not display excel SET PROPERTY OF excel 'Visible' = 0. *== get workbook CALL METHOD OF excel 'Workbooks' = workbook. *== open file as text to convert CALL METHOD OF workbook 'OPENTEXT' EXPORTING #1 = p_file "file to open #2 = 2 "origin #3 = 2 "start row #4 = 1 "data #5 = 1 "text qualifier #6 = 0 "consecutive delimiter #7 = 1 "Separator: tab #8 = 1 "Separator: semicolon #9 = 1 "Separator: comma #10 = 0 "Separator: space #11 = 1 "Separator: other #12 = ':'. "Separator: specify other char *== get active sheet. GET PROPERTY OF excel 'ActiveSheet' = sheet. *== overwrite existing file w/o prompting SET PROPERTY OF excel 'DisplayAlerts' = 0. *== save as XLSX CALL METHOD OF sheet 'SAVEAS' EXPORTING #1 = p_saveas #2 = 51. *== get active window CALL METHOD OF excel 'ACTIVEWINDOW' = active_window. *== set active_window visible SET PROPERTY OF active_window 'VISIBLE' = 1. *== close active_window without saving CALL METHOD OF active_window 'CLOSE' EXPORTING #1 = 0. *== close workbook CALL METHOD OF workbook 'CLOSE'. *== close excel application CALL METHOD OF excel 'QUIT'. *== free all used objects FREE OBJECT sheet. FREE OBJECT workbook. FREE OBJECT excel. FREE OBJECT active_window.
Letzte Artikel von Enno Wulff (Alle anzeigen)
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024
- So lange es den SAPGUI noch gibt… - 27. Juni 2024