点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好ZIP,Excel和ABAP...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好ZIP,Excel和ABAP...
加入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',因此什么也不做
...
偏移量
在文件分配
在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的更改也不起作用-已经尝试过)
已解决:DMS(文档管理系统)中的.xls-template版本是Excel 2002。
我在DMS中上传了一个Excel 2010版本,然后它起作用了。
具有2002 Excel版本始终会使用zip + offset(4)=
创建本地标头'D0CF11E0'。
一周热门 更多>