news 2026/7/1 9:15:19

ABAP---ABAP2XLSX代替ALSM_EXCEL_TO_INTERNAL_TABLE导入 动态创建表结构

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ABAP---ABAP2XLSX代替ALSM_EXCEL_TO_INTERNAL_TABLE导入 动态创建表结构

问题:

ALSM_EXCEL_TO_INTERNAL_TABLE ,其底层是通过调用你电脑本地安装的 Excel 进程来读取数据的,因此会高度依赖于前端客户端的本地环境,极不稳定;

解决

使用abap2xlsx的方式导入:直接解析 Excel 的 XML 底层结构,不需要本地安装 Excel 软件,支持前后台运行,速度快且极度稳定;

将abap2xlsx导入到sap;
abap2xlsx—git地址

具体操作案例如下链接所示:
ABAP2XLSX,操作excel

拓展:

1.abapgit的安装及使用教程

2.我这里简单封装了一个通用函数

记录列号,这是针对日期类型做的处理;

FUNCTION zfm_abap2xlsx. *"---------------------------------------------------------------------- *"*"本地接口: *" IMPORTING *"VALUE(FILENAME)*"VALUE(B_R)TYPE I *"VALUE(STRUNAME)*" EXPORTING *"VALUE(E_FLAG)*"VALUE(E_MES)*" TABLES *" IT_COL STRUCTURE ZSCOL OPTIONAL *" CHANGING *"VALUE(ET_ITAB)TYPE TABLE OPTIONAL *"----------------------------------------------------------------------DATA:gt_fieldcat TYPE lvc_t_fcat.DATA:lo_new_table TYPE REF TO data,lo_new_line TYPE REF TO data.FIELD-SYMBOLS:<lt_data> TYPE ANY TABLE,<ls_data> TYPE any,<lv_val> TYPE any. "excel文档类对象DATA:lo_excel TYPE REF TO zcl_excel. "excel worksheet类对象DATA:lo_worksheet TYPE REF TO zcl_excel_worksheet. "异常类DATA:lf_cxexcel TYPE REF TO zcx_excel. "上传excelDATA:cl_reader TYPE REF TO zif_excel_reader. "excel导入内表 "读取行列数DATA:col_count TYPE i.DATA:row_count TYPE i.DATA:col TYPE i.DATA:row TYPE i.DATA:lv_str TYPE string. TRY. CREATE DATA lo_new_table TYPE STANDARD TABLE OF(struname). " p_struname 为'ZSBANK'ASSIGN lo_new_table->* TO <lt_data>. IF sy-subrc = 0. CREATE DATA lo_new_line LIKE LINE OF <lt_data>. ASSIGN lo_new_line->* TO <ls_data>. TRY. CREATE OBJECT lo_excel. "cl_reader对象 CREATE OBJECT cl_reader TYPE zcl_excel_reader_2007. lo_excel = cl_reader->load_file(i_filename = filename). lo_worksheet = lo_excel->get_active_worksheet(). "获取行数,列数 row_count = lo_worksheet->get_highest_row(). col_count = lo_worksheet->get_highest_column(). DO row_count TIMES. row = sy-index. CHECK row >= b_r. DO col_count TIMES. col = sy-index. CLEAR lv_str. ASSIGN COMPONENT col OF STRUCTURE <ls_data> TO <lv_val>. lo_worksheet->get_cell(EXPORTING ip_column = col ip_row = row IMPORTING ep_value = lv_str). READ TABLE it_col WITH KEY col = col. IF sy-subrc = 0. <lv_val> = zcl_excel_common=>excel_string_to_date(lv_str). ELSE. <lv_val> = lv_str. ENDIF. UNASSIGN <lv_val>. ENDDO. INSERT <ls_data> INTO TABLE <lt_data>. ENDDO. APPEND LINES OF <lt_data> TO et_itab. e_flag ='S'. CATCH zcx_excel INTO lf_cxexcel.DATA:result TYPE string. CALL METHOD lf_cxexcel->if_message~get_text RECEIVING result = result. e_flag ='E'. e_mes = result. ENDTRY. ELSE. e_flag ='E'. e_mes ='动态表创建失败!'. ENDIF. CATCH cx_sy_create_data_error. e_flag ='E'. e_mes ='无法创建对应的表结构,请检查结构名是否正确!'. ENDTRY. ENDFUNCTION.

调用案例:

DATA:e_flag(1),e_mes TYPE string,lo_data TYPE REF TO data.FIELD-SYMBOLS:<lt_data> TYPE ANY TABLE. TRY. CREATE DATA lo_data TYPE STANDARD TABLE OF('ZSPPR012'). " p_struname 为'ZSBANK'ASSIGN lo_data->* TO <lt_data>. CATCH cx_sy_create_data_error. MESSAGE'无法创建对应的表结构,请检查结构名是否正确'TYPE'E'. ENDTRY.DATA:gt_zscol TYPE TABLE OF zscol. gt_zscol = VALUE #((col = 7)(col = 8)). CALL FUNCTION'ZFM_ABAP2XLSX'EXPORTING filename = p_file b_r = 2 struname ='ZSPPR012'IMPORTING e_flag = e_flag e_mes = e_mes TABLES it_col = gt_zscol CHANGING et_itab = <lt_data>. IF e_flag ='E'. MESSAGE e_mes TYPE'S'DISPLAY LIKE'E'. EXIT. ENDIF. APPEND LINES OF <lt_data> TO gt_itab.
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 7:58:04

AXURE9正版授权VS破解版:效率成本全对比

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个AXURE9授权决策辅助工具&#xff0c;功能&#xff1a;1.正版授权费用计算器 2.破解风险分析 3.工作效率对比 4.案例研究 5.决策建议。使用React构建交互式界面&#xff0c…

作者头像 李华
网站建设 2026/7/1 7:58:05

基于Springboot的实验报告评分系统vue3

目录摘要开发技术核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;摘要 基于Spring Boot和Vue3的实验报告评分系…

作者头像 李华
网站建设 2026/7/1 14:40:57

基于springboot的高校图书馆借阅管理系统vue3

目录基于SpringBoot与Vue3的高校图书馆借阅管理系统开发技术核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;基于…

作者头像 李华
网站建设 2026/7/1 7:58:05

深度学习毕设项目:基于python深度学习的乐器识别机器学习

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/7/1 7:58:10

从身份到集群:多智能体协作的认知架构

执行协议等待指令&#xff1a;简单任务用自适应身份叠加输入处理输出结构基元执行&#xff0c;复杂任务分拆成简单任务交给基元构成链条执行&#xff0c;默认不展示输入处理输出细节但用户可以要求展示。 从身份到集群&#xff1a;多智能体协作的认知架构 在人工智能系统的设计…

作者头像 李华
网站建设 2026/7/1 21:57:55

深度学习毕设选题推荐:基于python的识别水面漂浮垃圾

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华