点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我正在寻找一种可以以某种标准方式帮助我支持ECC6 EHP 4系统的xlsx支持的解决方案。
我希望如果在Excel中导出alv(任何alv报告程序),则应生成xlsx文件Office 2007标准xlsx文件进行保存。
我还在寻找可用于从自定义程序生成xlsx文件并通过电子邮件发送或进行GUI_Download的任何类/对象/函数。
我知道我不能在单线程上问太多问题,但是我的要求是要有一个标准解决方案,默认情况下在下载/上传中支持2007 Office excel文件格式。
我发现OSS也不是指相同的要求,但我想向您建议它可以完全解决我的目的。
OSS注释: 1286768
谢谢
Anand
嗨,
您可以尝试" abap2xlsx"。 转到 www.abap2xlsx.org 并尝试。 他们的工作很棒。
新网址: https://github.com/sapmentors/abap2xlsx
嗨,
您可以参考以下内容:
下载
[SAP&Excel集成]第1部分:将数据从任何SAP表备份/导出到Excel
上传
ABAP代码段 将Excel文件上传到内部表中并以alv格式显示-ABAP开发-SCN Wiki
谢谢。
此致
Keng Haw
嗨,
您是否尝试了我提供的代码? 确实可以导出为xlsx格式。
您可以使用类方法cl_gui_frontend_services => gui_download将其另存为文件。
如果所有标准ALV报告都需要它,则应打补丁(如果有)。 或者尝试在ALV屏幕中找到一些可用于导出按钮的增强功能????
谢谢
Shajahan。
嗨,
可以使用CL_SALV_TABLE和CL_BCS将ALV导出为XLSX格式,这适用于ECC6 EHP5,不确定EHP 4。
请参阅以下代码段以XLSX附件的形式发送电子邮件。
*******************************
类型:
lty_alv的开头,
....,
lty_alv的结尾。
数据:lty_alv的lt_alv类型标准表。
数据:lo_salv_table类型参考cl_salv_table。
选择...进入表lt_alv .....................
cl_salv_table =>工厂(
导入r_salv_table = lo_salv_table
更改t_table = lt_alv)。
*生成XLSX格式并发送电子邮件
数据:lo_bcs类型参考为cl_bcs,
lo_document类型参考为cl_document_bcs,
lo_distrlist_bcs类型参考为cl_distributionlist_bcs。
数据:lv_xml TYPE xstring,
lt_stream TYPE solix_tab。
数据lv_msg TYPE字符串。
"以Excel xml格式获取XML输出
lv_xml = lo_salv_table-> to_xml(
xml_type = if_salv_bs_xml => c_type_excel_xml
xml_flavour = if_salv_bs_c_tt )。
lt_stream = cl_bcs_convert => xstring_to_solix(iv_xstring = lv_xml)。
lv_msg ='邮件正文到此处'。
lo_document = cl_document_bcs => create_document(
i_type ='RAW'
i_text = cl_bcs_convert => string_to_soli(iv_string = lv_msg)
i_subject ='邮件主题去了这里')。
>
lo_document-> add_attachment(i_attachment_type ='RAW'"也可以使用XLS
i_attachment_subject ='file_name.xlsx'
i_att_content_hex = lt_stream)。
lo_bcs = cl_bcs => create_persistent()。
lo_bcs-> set_document(lo_document)。
lo_bcs-> set_sender(i_sender = cl_cam_address_bcs => create_internet_address('sender email id'))。 " cl_sapuser_bcs =>创建(sy-uname)
lo_distrlist_bcs = cl_distributionlist_bcs => getu_persistent(i_dliname ='分发列表名称'i_private = abap_false)。 "或使用上述创建互联网地址
lo_bcs-> add_recipient(i_recipient = lo_distrlist_bcs)。
lo_bcs-> set_send_immediately(abap_true)。
lo_bcs-> send_request-> set_link_to_outbox(abap_true)。
lo_bcs-> send()。
提交工作。
********************************
此方法的缺点:如果在SAP Business Workspace中打开了邮件,则该文件无法识别文件类型,因为它目前仅支持3个字符的身份。 外部电子邮件客户端可以正确打开附件。 如果要在SAP中打开附件,请将附件类型更改为" XLS",然后从文件名中删除文件扩展名。
谢谢
Shajahan
不需要使用iXML,请使用 abap2xlsx 。 p>
CL_BCS可以发送任何类型的文件,搜索论坛或仅使用演示程序BCS_EXAMPLE _ *。
您好,感谢您提供意见,但这是我真正的一种方式 以某种SAP补丁方式实现这一目标:就像所有ALV一样,会自动更新以导出xlsx。
我知道自定义开发确实需要更改代码,但这是ALV导出应该起作用的一种方式,以便在STANDARD中具有xlsx导出。。
一周热门 更多>