ABAP EXCEL 转 PDF

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.

相关推荐
Cloud_Shy61819 小时前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十二章 用户定义函数 上篇)
python·数据分析·excel·pandas
QuZhengRong20 小时前
【Luck-Report】缓存
java·前端·后端·vue·excel
程序员老油条1 天前
Excel合并的单元格拆分并批量填充为已有数据
excel
QQ12958455041 天前
FERP50 - Excel以存储过程方式访问数据仓库
数据仓库·spark·excel
Omics Pro1 天前
免费!糖蛋白质组学数据分析
开发语言·深度学习·数据挖掘·数据分析·r语言·excel·知识图谱
开始脱发的自然卷1 天前
用 Excel 手算一个 1-6-1 MLP:前向传播、损失、反向传播与参数更新
excel
阿波罗尼亚1 天前
浮点数精度问题
java·excel
程序员敲代码吗1 天前
Go语言中Channel的实现与内存通信机制详解
excel
时空自由民.2 天前
vim入门配置教程
编辑器·vim·excel
_院长大人_2 天前
Java Excel导出:如何实现自定义表头与字段顺序的完全控制
java·开发语言·后端·excel