mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 12:06:15 +08:00

git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@352 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
86 lines
3.2 KiB
XML
86 lines
3.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<PROG NAME="ZDEMO_EXCEL37" VARCL="X" SUBC="1" RSTAT="T" RMAND="100" RLOAD="E" FIXPT="X" UCCHECK="X">
|
|
<textPool>
|
|
<language SPRAS="D">
|
|
<textElement ID="R" ENTRY="Xlsx-Datei lesen und dann wieder ausgeben" LENGTH="70 "/>
|
|
<textElement ID="S" KEY="P_UPFILE" ENTRY=" Hochzuladende Datei" LENGTH="27 "/>
|
|
</language>
|
|
<language SPRAS="E">
|
|
<textElement ID="R" ENTRY="Read xlsx-file and output" LENGTH="25 "/>
|
|
<textElement ID="S" KEY="P_UPFILE" ENTRY=" File to upload" LENGTH="22 "/>
|
|
</language>
|
|
</textPool>
|
|
<source>REPORT zdemo_excel37.
|
|
|
|
DATA: excel TYPE REF TO zcl_excel,
|
|
reader TYPE REF TO zif_excel_reader.
|
|
|
|
|
|
CONSTANTS: gc_save_file_name TYPE string VALUE '37-passthrough.xlsx'.
|
|
|
|
SELECTION-SCREEN BEGIN OF BLOCK blx WITH FRAME.
|
|
PARAMETERS: p_upfile TYPE string DEFAULT 'c:\temp\whatever.xlsx' LOWER CASE.
|
|
SELECTION-SCREEN END OF BLOCK blx.
|
|
|
|
INCLUDE zdemo_excel_outputopt_incl.
|
|
|
|
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_upfile.
|
|
PERFORM f4_p_upfile CHANGING p_upfile.
|
|
|
|
|
|
START-OF-SELECTION.
|
|
|
|
TRY.
|
|
CREATE OBJECT reader TYPE zcl_excel_reader_2007.
|
|
* CREATE OBJECT reader TYPE zcl_excel_reader_xlsm.
|
|
excel = reader->load_file( p_upfile ).
|
|
*** Create output
|
|
lcl_output=>output( excel ).
|
|
CATCH cx_root.
|
|
MESSAGE 'Error reading excelfile' TYPE 'I'.
|
|
ENDTRY.
|
|
|
|
|
|
*&---------------------------------------------------------------------*
|
|
*& Form F4_P_UPFILE
|
|
*&---------------------------------------------------------------------*
|
|
FORM f4_p_upfile CHANGING p_upfile TYPE string.
|
|
|
|
DATA: lv_repid TYPE syrepid,
|
|
lt_fields TYPE dynpread_tabtype,
|
|
ls_field LIKE LINE OF lt_fields,
|
|
lt_files TYPE filetable.
|
|
|
|
lv_repid = sy-repid.
|
|
|
|
CALL FUNCTION 'DYNP_VALUES_READ'
|
|
EXPORTING
|
|
dyname = lv_repid
|
|
dynumb = '1000'
|
|
request = 'A'
|
|
TABLES
|
|
dynpfields = lt_fields
|
|
EXCEPTIONS
|
|
invalid_abapworkarea = 01
|
|
invalid_dynprofield = 02
|
|
invalid_dynproname = 03
|
|
invalid_dynpronummer = 04
|
|
invalid_request = 05
|
|
no_fielddescription = 06
|
|
undefind_error = 07.
|
|
READ TABLE lt_fields INTO ls_field WITH KEY fieldname = 'P_UPFILE'.
|
|
p_upfile = ls_field-fieldvalue.
|
|
|
|
cl_gui_frontend_services=>file_open_dialog( EXPORTING
|
|
default_filename = p_upfile
|
|
file_filter = zcl_excel_common=>c_xlsx_file_filter
|
|
CHANGING
|
|
file_table = lt_files
|
|
rc = sy-tabix
|
|
EXCEPTIONS
|
|
OTHERS = 1 ).
|
|
READ TABLE lt_files INDEX 1 INTO p_upfile.
|
|
|
|
ENDFORM. " F4_P_UPFILE</source>
|
|
</PROG>
|