使用ZIF_EXCEL_READER〜LOAD创建ZCL_EXCEL_READER_2007对象

2020-08-27 00:00发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好ZIP,Excel和ABAP...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好ZIP,Excel和ABAP2XLSX专家

我想将通过事务CV01n已上载到SAP DB表中DMS的给定Excel文件(.xls)(例如DRAW等)转换为excel_reader_2007对象。

此后,我希望能够处理excel对象,并将报告数据插入该模板提供的正确单元格中。

我已经管理好了这一点,已经使用这种方法在excel类中读取了文件内容(类型:xstring):

...

me-> mv_content = me-> raw_to_xstring(input = lt_orblk)。

...

之后,我尝试实例化excel_reader_2007类:

...

创建对象lo_excel_reader类型zcl_excel_reader_2007。
co_excel = lo_excel_reader-> zif_excel_reader〜load(

me-> mv_template_xstring)。

....

在此加载接口方法中,ixml是从zip归档文件中提取的-无论在这里如何处理rels事情:

...

me-> excel2007 = i_excel2007。
rels = me-> get_ixml_from_zip_archive('_rels/.rels')。

....

此方法立即调用下一个方法:get_from_zip_archive。

...

content = me-> get_from_zip_archive(i_filename)。 " _rels/.rels

然后,用这种方法创建并加载一个zip对象。

...

创建对象me-> zip。 " CL_ABAP_ZIP

zip->加载(
导出
zip = me-> excel2007

...

我认为这种加载方法已经成为麻烦的制造者:

在第75行中,由于偏移量为0,maxlength = 3601404且zip + offset(4)='D0CF11E0'而从不'504B0304',因此什么也不做

...

偏移量 file_no = file_no +1。
在文件分配上附加首行。
在exts分配上附加首行。

...

但是zip-> load(me-> excel2007)毫无例外地运行,但是表'Files'不会被填充。 这很关键,因为在方法get_from_zip_archive中的下一个ZIP方法中,将尝试读取zip文件:

...

zip-> get(
导出
名称= i_filename
导入
content = r_content"目录

....

在这里,从表文件中读取数据当然会因zip_index_error的增加而失败。

IF索引为初始值。
读取表文件,传输不包含键名称为name的字段。
如果sy-subrc不是初始值。
引起zip_index_error。 " #EC RAISE_OK
ENDIF。
索引= sy-tabix。
ENDIF。

现在,有人可以告诉我, 我如何获取我的xstring-内容已成功传输到ZIP或ZCL_EXCEL_READER_2007类。

出了什么问题?

是否可能与前端的安装有关,或者xls可能是2002版本?`

将其另存为.xml并没有帮助。 我已经尝试过了。

我将不胜感激!

________________________________________________________________________________________________________________

系统版本为ECC 6.0,SAP-Basis 7.31,ABAP2XLSX-Version 5.0(对7.0的更改也不起作用-已经尝试过)