ABAP-导出HR员工照片到Excel

该博客介绍了一种使用ABAP进行自动化处理的方法,通过abap2xls库生成Excel模板,并结合HR模块的函数调用来获取员工照片。代码示例展示了如何遍历数据,填充表格内容,包括员工信息、工作经历、教育背景等,并将员工照片插入到指定单元格中。最后,完成Excel文件的下载和显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关键技术:abap2xls-具体的使用方法参考官方提供的demo

          HR照片读取-调用函数HR_IMAGE_EXISTS\ALINK_RFC_TABLE_GET等

参考下图关键代码:

具体实现代码:

 

*&---------------------------------------------------------------------*
*& Form FRM_DOWN_LOAD_XLS
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_down_load_xls .
  DATA: lv_formkey  LIKE wwwdatatab,
        lv_dir      TYPE string,
        lv_rc       TYPE sy-subrc,
        lv_temp     TYPE c,
        lv_row      TYPE i,
        lv_photo    TYPE xstring,
        lv_dw       TYPE char80,
        lo_drawing  TYPE REF TO zcl_excel_drawing,
        lo_reader   TYPE REF TO zif_excel_reader,
        lo_writer   TYPE REF TO zif_excel_writer,
        lv_filename LIKE rlgrap-filename,
        lo_excel    TYPE REF TO zcl_excel.

  lv_formkey = 'MIZHRRJT00080_2'.
  CALL METHOD cl_gui_frontend_services=>directory_browse
    EXPORTING
      window_title    = '请选择模版存放的路径'
    CHANGING
      selected_folder = lv_dir.

  IF lv_dir IS INITIAL.
    RETURN.
  ENDIF.



  LOOP AT lt_data INTO DATA(ls_data) WHERE flag = 'X'.
    CLEAR: lv_filename.
    lv_filename = lv_dir && '\' && |员工基本情况登记表_{ ls_data-ename }.XLS|.
    CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
      EXPORTING
        key         = lv_formkey
        destination = lv_filename
      IMPORTING
        rc          = lv_rc
      CHANGING
        temp        = lv_temp.
    IF lv_rc NE 0.
      MESSAGE '下载模板失败' TYPE 'E'.
      EXIT.
    ENDIF.

    CONCATENATE '单位:' lt_data-name1
          '                              填表日期:'sy-datum+0(4) '年' sy-datum+4(2) '月' sy-datum+6(2) '日' INTO lv_dw SEPARATED BY space.
    lo_reader = NEW zcl_excel_reader_2007( ).
    lo_writer = NEW zcl_excel_writer_2007( ).
    lo_excel = lo_reader->load_file( lv_filename ).
    "Use template for charts
    lo_excel->use_template = abap_true.
    DATA(lo_worksheet) = lo_excel->get_active_worksheet( ).
    "单位
    lo_worksheet->set_cell( ip_column = 'A' ip_row = 2 ip_value = lv_dw ).
    "员工照片
    CLEAR: lv_photo.
    PERFORM frm_get_photo USING ls_data-pernr CHANGING lv_photo.
    IF lv_photo IS NOT INITIAL.
      lo_drawing = lo_excel->add_new_drawing( ).
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值