点击此处---> 群内免费提供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 并尝试。 他们的工作很棒。
谢谢。 将尝试abap2xlsx。
*创建流工厂
l_streamfactory = l_ixml-> create_stream_factory()。
*将内部XML表连接到Stream Factory
l_ostream = l_streamfactory-> create_ostream_itable(table = l_xml_table)。
*渲染文档
l_renderer = l_ixml-> create_renderer(ostream = l_ostream document = l_document)。
l_rc = l_renderer-> render ()。
*保存XML文档
l_xml_size = l_ostream-> get_num_writing_raw()。
我从这段代码中得到一个XML表" l_xml_table",我该如何转换为支持.xlsx文件(EXcel2007格式)的Format并使用Cl_bcs类
SPAN {font- 家庭:" Courier New"; 字体大小:10pt; 颜色:#000000; 背景:#FFFFFF; } .L0S31 {font-style:italic; 颜色:#808080; } .L0S33 {color:#4DA619; } .L0S52 {color:#0000FF; } .L0S55 {color:#800080; } .L0S70 {color:#808080; }
数据:lt_mt_data类型REF TO数据,
lv_m_flavor TYPE字符串,
lv_m_version TYPE字符串,
lt_mo_result_data类型REF到cl_salv_ex_result_data_table,
lt_mo_列类型REF到TO __> cl_salv_aggregations,
lt_mo_salv_table类型参考cl_salv_table,
lv_m_file_type类型salv_bs_constant,
lv_out_length类型i
* lw_lvc_layout类型lvc_s_layo
>键入任何表。
。)。
清除:lt_mt_data,
lt_mo_salv_table,
lt_mo_result_data,
lv_out_length。
如果gt_mt_fcat是INITIAL。
**为邮件标题列构建字段目录
PERFORM f_build_fcatmail。
ENDIF。
""引用我们的数据表
引用ist_mail INTO lt_mt_data。
""创建salv类型表以创建excel
ASSIGN lt_mt_data-> *至
尝试。
cl_salv_table => factory(
导出
list_display = abap_false
导入
r_salv_tabl e = lt_mo_salv_table
更改
t_table =
捕获cx_salv_msg。
ENDTRY。
IF cl_salv_bs_a_xml_base => get_version()EQ > if_salv_bs_xml => version_25或
cl_salv_bs_a_xml_base => get_version()EQ
if_salv_bs_xml => version_26。
*""将字段目录和我们的数据组合
调用方法cl_salv_ex_ factory_result_data_table
导出
* t_selected_rows =
* t_selected_columns =
* t_selected_cells =
r_data = lt_mt_data
* s_layout = lw_lvc_layout
t_fieldcatalog = gt> mt_f_cat > * t_filter =
* t_hyperlinks =
* s_current_cell =
* superlink_entry_column =
* dropdown_entry_column =
* t_dropdown_values =
* r_top_of_list =
* r_end_of_list =
RECEIVING
r_result_data_table = lt_mo_result_data。
CASE cl_salv_bs_a_xml_base => get_version()。
if_salv_bs_xml => version_25时。
lv_m_version = if_salv_bs_>。 vers ion_26。
lv_m_version = if_salv_bs_xml => version_26。
ENDCASE。
lv_m_file_type = if_salv_bs_xml => c_type_xlsx。
lv_c_flavour = if_salv_bs_
数据到excel的转换
> xml_flavor = lv_m_flavor
清除:gv_xstring。
调用方法cl_salv_bs_tt_util => if_salv_bs_tt_util〜transform
导出
xml_type = lv_m_file_type
xml_version = lv_m_ult_ult
gui_type = if_salv_bs_xml => c_gui_type_gui
IMPORTING
xml = gv_xstring。
ENDIF。
* ------邮件附件的二进制格式为excel ------ *
清除:gt_binary_content。
调用功能'SCMS_XSTRING_TO_BINARY'
导出
缓冲区= gv_xstring
导入
output_length = lv_out_length
表格
Binary_tab = gt_binary_content。
移动:lv_out_length TO pc_lv_size。
这是我为.XLSx文件中excel中的内容编写的代码
一周热门 更多>