DATA: application TYPE ole2_object,
workbook TYPE ole2_object,
sheet TYPE ole2_object.
IF iv_pdf IS NOT INITIAL.
CREATE OBJECT application ‘EXCEL.APPLICATION’.
CALL METHOD OF application ‘WORKBOOKS’ = workbook.
CALL METHOD OF workbook ‘OPEN’
EXPORTING
#1 = output_path_xlsx.
CALL METHOD OF application ‘WORKSHEETS’ = sheet
EXPORTING
#1 = 1. "Sheet1
CALL METHOD OF sheet ‘ACTIVATE’.
output_path_pdf = output_path_xlsx.
REPLACE '.xlsx' WITH '.pdf' INTO output_path_pdf.
REPLACE '.XLSX' WITH '.pdf' INTO output_path_pdf.
CALL METHOD OF sheet 'ExportAsFixedFormat'
EXPORTING
#1 = 0
#2 = output_path_pdf.
CALL METHOD OF workbook 'CLOSE'.
CALL METHOD OF application 'QUIT'.
FREE OBJECT: application,workbook,sheet.
CALL METHOD cl_gui_frontend_services=>file_exist
EXPORTING
file = output_path_pdf
RECEIVING
result = DATA(l_res)
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
wrong_parameter = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc <> 0 OR l_res = space.
MESSAGE |PDF另存失败| TYPE 'E'.
ELSE.
MESSAGE |PDF另存为{ output_path_pdf }| TYPE 'S'.
ENDIF.
CALL METHOD cl_gui_frontend_services=>file_delete
EXPORTING
filename = output_path_xlsx
CHANGING
rc = l_dummy_rc
EXCEPTIONS
file_delete_failed = 1
cntl_error = 2
error_no_gui = 3
file_not_found = 4
access_denied = 5
unknown_error = 6
not_supported_by_gui = 7
wrong_parameter = 8
OTHERS = 9.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDMETHOD.
合并ALV 单元格
**PERFORM FRM_MERGED USING ZP2 11 LV 11. **
FORM FRM_MERGED USING X1 Y1 X2 Y2.
DATA:GS_CELLS TYPE OLE2_OBJECT,
GS_CELL1 TYPE OLE2_OBJECT,
GS_CELL2 TYPE OLE2_OBJECT,
GS_CELL3 TYPE OLE2_OBJECT.
*–SELECTING CELL AREA TO BE MERGED.
CALL METHOD OF EXCEL ‘CELLS’ = GS_CELL1
EXPORTING
#1 = X1
#2 = Y1.
CALL METHOD OF EXCEL ‘CELLS’ = GS_CELL2
EXPORTING
#1 = X2
#2 = Y2.
- CALL METHOD OF EXCEL ‘CELLS’ = GS_CELL3
- EXPORTING
-
#1 = X3
-
#2 = Y3.
**ZQJ 20200327DEL
CALL METHOD OF EXCEL ‘RANGE’ = GS_CELLS
EXPORTING
#1 = GS_CELL1
#2 = GS_CELL2.
-
#3 = GS_CELL3.
**ZQJ 20200327DEL
CALL METHOD OF GS_CELLS ‘SELECT’.
*–MERGING
CALL METHOD OF GS_CELLS ‘MERGE’ .
ENDFORM.
** EXCEL INSERT 行 **
FORM FRM_ROW_INSERT USING I_SHEET I_INDEX I_COPIEDROW.
DATA: L_ROW TYPE OLE2_OBJECT. "row object
- get template row 9
CALL METHOD OF I_SHEET ‘Rows’ = L_ROW EXPORTING #1 = I_COPIEDROW. - copy row 9
CALL METHOD OF L_ROW ‘Copy’. - create new row refer to row 9
CALL METHOD OF I_SHEET ‘Rows’ = L_ROW EXPORTING #1 = I_INDEX. - insert new row
CALL METHOD OF L_ROW ‘Insert’. - clear new row contents
CALL METHOD OF L_ROW ‘ClearContents’.
ENDFORM.