Office 2007 XLSX支持

2020-09-04 00:50发布

         点击此处--->   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

         点击此处--->   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条回答
Violet凡
1楼 · 2020-09-04 01:46.采纳回答

嗨,

您可以尝试" abap2xlsx"。 转到 www.abap2xlsx.org 并尝试。 他们的工作很棒。

骆驼绵羊
2楼-- · 2020-09-04 01:46
clasier
3楼-- · 2020-09-04 01:31
宇峰Kouji
4楼-- · 2020-09-04 01:32

嗨,

您是否尝试了我提供的代码? 确实可以导出为xlsx格式。

您可以使用类方法cl_gui_frontend_services => gui_download将其另存为文件。

如果所有标准ALV报告都需要它,则应打补丁(如果有)。 或者尝试在ALV屏幕中找到一些可用于导出按钮的增强功能????

谢谢

Shajahan。

95年老男孩
5楼-- · 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

落灬小鱼
6楼-- · 2020-09-04 01:44

不需要使用iXML,请使用 abap2xlsx

CL_BCS可以发送任何类型的文件,搜索论坛或仅使用演示程序BCS_EXAMPLE _ *。

DafaDDDa
7楼-- · 2020-09-04 01:43

您好,感谢您提供意见,但这是我真正的一种方式 以某种SAP补丁方式实现这一目标:就像所有ALV一样,会自动更新以导出xlsx。

我知道自定义开发确实需要更改代码,但这是ALV导出应该起作用的一种方式,以便在STANDARD中具有xlsx导出。。

一周热门 更多>