当前位置: 首页 > news >正文

淘宝做导航网站有哪些电商营销策划方案

淘宝做导航网站有哪些,电商营销策划方案,南京网站开发南京乐识好,网址做SAP将指定EXCEL工作SHEET的数据上传到内表 本文描述了一个SAP ABAP类方法upload_excel_2internaltab,用于将Excel文件数据上传到内部表。主要功能包括: 验证Excel行列范围有效性,若起始值大于结束值则抛出异常检查文件是否存在,支…

SAP将指定EXCEL工作SHEET的数据上传到内表

 本文描述了一个SAP ABAP类方法upload_excel_2internaltab,用于将Excel文件数据上传到内部表。主要功能包括:

  1. 验证Excel行列范围有效性,若起始值大于结束值则抛出异常
  2. 检查文件是否存在,支持直接指定路径或通过文件对话框选择
  3. 使用OLE自动化技术操作Excel,包括打开工作簿、选择工作表、复制指定单元格范围数据
  4. 通过剪贴板将Excel数据导入ABAP内部表,调用标准函数进行格式转换
  5. 包含完善的异常处理机制,针对文件不存在、操作失败等情况抛出定制异常类ZCX_AB_K2_SERVICE的相应错误
  6. 最后释放所有OLE对象以关闭Excel进程

该方法实现了Excel与SAP系统间的数据交互,适用于需要批量导入数据的业务场景。

class ZCX_AB_K2_SERVICE definition
  public
  inheriting from CX_STATIC_CHECK
  create public .

public section.

  interfaces IF_T100_DYN_MSG .
  interfaces IF_T100_MESSAGE .

  constants:
    begin of PROCESSID_NOT_CONFIGED,
      msgid type symsgid value 'ZMSG_AB_I02',
      msgno type symsgno value '001',
      attr1 type scx_attrname value 'MV_APTYP',
      attr2 type scx_attrname value 'MV_BUKRS',
      attr3 type scx_attrname value '',
      attr4 type scx_attrname value '',
    end of PROCESSID_NOT_CONFIGED .
  constants:
    begin of PROCESSID_NOT_UNIQUE,
      msgid type symsgid value 'ZMSG_AB_I02',
      msgno type symsgno value '016',
      attr1 type scx_attrname value '',
      attr2 type scx_attrname value '',
      attr3 type scx_attrname value '',
      attr4 type scx_attrname value '',
    end of PROCESSID_NOT_UNIQUE .
  constants:
    begin of WRONG_COMPANY_CODE,
      msgid type symsgid value 'ZMSG_AB_I02',
      msgno type symsgno value '017',
      attr1 type scx_attrname value 'MV_BUKRS',
      attr2 type scx_attrname value '',
      attr3 type scx_attrname value '',
      attr4 type scx_attrname value '',
    end of WRONG_COMPANY_CODE .
  constants:
    begin of BEGIN_OVER_END,
      msgid type symsgid value 'ZMSG_AB_I02',
      msgno type symsgno value '023',
      attr1 type scx_attrname value '',
      attr2 type scx_attrname value '',
      attr3 type scx_attrname value '',
      attr4 type scx_attrname value '',
    end of BEGIN_OVER_END .
  constants:
    begin of UPLOAD_FILE_FAILED,
      msgid type symsgid value 'ZMSG_AB_I02',
      msgno type symsgno value '022',
      attr1 type scx_attrname value '',
      attr2 type scx_attrname value '',
      attr3 type scx_attrname value '',
      attr4 type scx_attrname value '',
    end of UPLOAD_FILE_FAILED .
  data MV_APTYP type ZE_APTYP .
  data MV_BUKRS type ZE_BUKRS .

  methods CONSTRUCTOR
    importing
      !TEXTID like IF_T100_MESSAGE=>T100KEY optional
      !PREVIOUS like PREVIOUS optional
      !MV_APTYP type ZE_APTYP optional
      !MV_BUKRS type ZE_BUKRS optional .

METHOD upload_excel_2internaltab.

    DATA: lt_excel_tab   TYPE tyt_send_line,
          lo_application TYPE ole2_object,
          lo_workbook    TYPE ole2_object,
          lo_worksheet   TYPE ole2_object,
          lo_cell        TYPE ole2_object,
          lo_cell_1      TYPE ole2_object,
          lo_range       TYPE ole2_object,
          lv_return_code TYPE i,
          lt_file_table  TYPE filetable.

    IF iv_begin_colomn > iv_end_colomn.
      "起止大于截止
      RAISE EXCEPTION TYPE zcx_ab_k2_service
        EXPORTING
          textid = zcx_ab_k2_service=>begin_over_end.
    ENDIF.

    IF iv_begin_row > iv_end_row.
      RAISE EXCEPTION TYPE zcx_ab_k2_service
        EXPORTING
          textid = zcx_ab_k2_service=>begin_over_end.
    ENDIF.

    IF iv_file_name IS NOT INITIAL.
      CALL METHOD cl_gui_frontend_services=>file_exist
        EXPORTING
          file                 = iv_file_name
        RECEIVING
          result               = DATA(lv_file_exist)
        EXCEPTIONS
          cntl_error           = 1
          error_no_gui         = 2
          wrong_parameter      = 3
          not_supported_by_gui = 4
          OTHERS               = 5.
      IF sy-subrc <> 0 OR lv_file_exist EQ abap_false.
        "文件不存在
        RAISE EXCEPTION TYPE zcx_ab_k2_service
          EXPORTING
            textid = zcx_ab_k2_service=>upload_file_failed.
      ELSE.
        DATA(lv_file_name) = iv_file_name.
      ENDIF.

    ELSE.
      CALL METHOD cl_gui_frontend_services=>get_desktop_directory
        CHANGING
          desktop_directory    = lv_file_name
        EXCEPTIONS
          cntl_error           = 1
          error_no_gui         = 2
          not_supported_by_gui = 3
          OTHERS               = 4.
      IF sy-subrc <> 0.
        RAISE EXCEPTION TYPE zcx_ab_k2_service
          EXPORTING
            textid = zcx_ab_k2_service=>upload_file_failed.
      ENDIF.

      CALL METHOD cl_gui_frontend_services=>file_open_dialog
        EXPORTING
          window_title            = CONV #( TEXT-001 )
          default_extension       = CONV #( TEXT-002 )
*         default_filename        = '上传模板'
          file_filter             = cl_gui_frontend_services=>filetype_excel
*         with_encoding           =
          initial_directory       = lv_file_name
          multiselection          = abap_false
        CHANGING
          file_table              = lt_file_table
          rc                      = lv_return_code
*         user_action             =
*         file_encoding           =
        EXCEPTIONS
          file_open_dialog_failed = 1
          cntl_error              = 2
          error_no_gui            = 3
          not_supported_by_gui    = 4
          OTHERS                  = 5.
      IF sy-subrc <> 0.
        RAISE EXCEPTION TYPE zcx_ab_k2_service
          EXPORTING
            textid = zcx_ab_k2_service=>upload_file_failed.
      ELSE.
        lv_file_name = lt_file_table[ 1 ].
      ENDIF.

    ENDIF.

    CLASS cl_abap_char_utilities DEFINITION LOAD.
    DATA(lv_separator) = cl_abap_char_utilities=>horizontal_tab.

    IF lo_application-header = abap_false
      OR lo_application-handle = -1.
      CREATE OBJECT lo_application 'Excel.Application'.
    ENDIF.

    CALL METHOD OF lo_application 'Workbooks' = lo_workbook.

    "必须参考RLGRAP-FILENAME
    DATA(lv_excel_name) = CONV localfile( lv_file_name ).
    CALL METHOD OF lo_workbook 'Open' EXPORTING #1 = lv_file_name.

    IF iv_sheet_name IS INITIAL.
*  set property of application 'Visible' = 1.
      GET PROPERTY OF  lo_application 'ACTIVESHEET' = lo_worksheet.
    ELSE.
      CALL METHOD OF lo_application 'WORKSHEETS' = lo_worksheet
      EXPORTING #1 = iv_sheet_name.

      CALL METHOD OF lo_worksheet 'Activate'.
    ENDIF.

* mark whole spread sheet
    CALL METHOD OF lo_worksheet 'Cells' = lo_cell
        EXPORTING #1 = iv_begin_row #2 = iv_begin_colomn.

    CALL METHOD OF lo_worksheet 'Cells' = lo_cell_1
        EXPORTING #1 = iv_end_row #2 = iv_end_colomn.

    CALL METHOD  OF lo_worksheet 'RANGE' = lo_range
                   EXPORTING #1 = lo_cell #2 = lo_cell_1.

    CALL METHOD OF lo_range 'SELECT'.

* copy marked area (whole spread sheet) into Clippboard
    CALL METHOD OF lo_range 'COPY'.

* read clipboard into ABAP
    CALL METHOD cl_gui_frontend_services=>clipboard_import
      IMPORTING
        data                 = lt_excel_tab
      EXCEPTIONS
        cntl_error           = 1
        error_no_gui         = 2
        not_supported_by_gui = 3
        OTHERS               = 4.
    IF sy-subrc <> 0.
      RAISE EXCEPTION TYPE zcx_ab_k2_service
        EXPORTING
          textid = zcx_ab_k2_service=>upload_file_failed.
    ENDIF.

    IF lt_excel_tab IS NOT INITIAL.
      PERFORM separated_to_intern_convert IN PROGRAM saplalsmex
                                          TABLES lt_excel_tab rt_internal_table
                                          USING  lv_separator.

* clear clipboard
      REFRESH lt_excel_tab.
      CALL METHOD cl_gui_frontend_services=>clipboard_export
        IMPORTING
          data                 = lt_excel_tab
        CHANGING
          rc                   = lv_return_code
        EXCEPTIONS
          cntl_error           = 1
          error_no_gui         = 2
          not_supported_by_gui = 3
          OTHERS               = 4.
      IF sy-subrc NE 0.
        RAISE EXCEPTION TYPE zcx_ab_k2_service
          EXPORTING
            textid = zcx_ab_k2_service=>upload_file_failed.
      ENDIF.
    ENDIF.

* quit Excel and free ABAP Object - unfortunately, this does not kill
* the Excel process
    CALL METHOD OF lo_workbook 'CLOSE'.
    CALL METHOD OF lo_application 'QUIT'.

* >>>>> Begin of change note 575877
* to kill the Excel process it's necessary to free all used objects
    FREE OBJECT lo_cell.
    FREE OBJECT lo_cell_1.
    FREE OBJECT lo_range.
    FREE OBJECT lo_worksheet.
    FREE OBJECT lo_workbook.
    FREE OBJECT lo_application.
* <<<<< End of change note 575877
  ENDMETHOD.

http://www.dtcms.com/a/586012.html

相关文章:

  • 什么是住宅IP代理?为什么需要家庭 IP 代理
  • 潍坊定制网站搭建手机电子商务网站建设策划书
  • 《巧用 vector 解析 OJ 经典算法:从异或寻数到杨辉三角》
  • LoRA技术原理详解:大模型高效微调的“低秩”智慧
  • Rust中数组简介
  • 外国做足球数据网站学校网站设计方案模板
  • 68网页设计欣赏seo搜索排名优化是什么意思
  • Epoll 服务器实战教学:从 Poll 到高性能事件驱动模型
  • A*改进算法D* 和 LPA* 算法介绍和算法特点对比详解
  • 第十二章 网络地址转换
  • 郑州市东区建设环保局官方网站wordpress 仿煎蛋主题
  • Linux 中的 Cron:管理员完整指南 + 隐藏问题
  • 南昌做网站建站的小礼品网络定制
  • 建筑网站推荐百度小程序云开发
  • Apls-day4
  • 国家网信办发布的第十四批深度合成算法备案综合分析报告
  • 动感网站模板网站百度搜不到了
  • 赚钱软件哪个赚钱多又快Wordpress校内优化
  • 小项目:猜数字游戏
  • 网易门户网站建设wordpress 非插件cdn
  • “征服式学习”提示词工具箱
  • 【ZeroRange WebRTC】WebRTC 访问控制:最小权限与短期凭证(深入指南)
  • 前端-表格
  • 快速排名网站怎么做多语言网站
  • 墨境 | 水墨风动作Roguelite游戏
  • 深度学习:python人脸表情识别系统 情绪识别系统 深度学习 神经网络CNN算法 ✅
  • Similarity and Dissimilarity Measures|相似性和不相似性度量
  • 树莓派学习资料共享
  • 我们来学AI编程 -- 深入分析Lingma后台程序
  • Rootkit检测利器rkhunter详解:原理、实践与渗透测试应用