Office 2007 XLSX支持

2020-09-04 00:50发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我正在寻找一种可以以某种...

         点击此处--->   EasySAP.com群内免费提供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

10条回答
95年老男孩
2020-09-04 01:42

嗨,

可以使用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

一周热门 更多>