01
批量导出SAP_CONVERT_TO_XLS_FORMAT
今天写一下SAP_CONVERT_TO_XLS_FORMAT 批量导出excel的函数,
相信这个FUNCTION大家都已经用了很多,我就稍微写一下呗。
这里需要提一下,为了解决输出内容格式的问题: 1. 先将一个Excel单位格属性设置为文本格式,然后保存下来,用SMW0将EXCEL上传到服务器上
2. 用zcl_document_jxzhu=>download_template_to_fronten方法来讲模板下载下来
3. 使用SAP_CONVERT_TO_XLS_FORMAT将内表数据导入到Exce
形成 frm_export_excel_1 。数据 li_filename 类型 rlgrap -文件名。DATA ls_filename 类型 字符串。 li_filename = p_file 。 ls_filename = p_file 。CALL METHOD zcl_document_jxzhu => download_template_to_frontend EXPORTING iv_fun = '2' " FUN的功能 名 _of_template = '物料主数据客制表'
iv_filepath = ls_filename "当IV_FUN = 2时,保存路径iv_filepath必填这样就不会弹框选择,可以引用函数的外部路径
* iv_relid = 'MI'
iv_objid = 'ZMMT001'导入 rv_filepath = ls_filename例外 下载 错误= 1其他 = 2 。最多等待 2 秒。“确保从服务器下载的模板保存下来,然后再打开输入。 li_filename = ls_filename 。从 zmmt001 中选择 * 进入表 @lt_zmmt001 的 相应 字段。将表 lt_zmmt001 读入数据(ls_zmmt001 )
索引 1 。"为了防止格式的问题,使用这个函数的时候,输出最好用char型TYPES : BEGIN OF lty_excel , matnr TYPE char40 , id TYPE char10 , f1 TYPE char10 , f2 TYPE char10 , f3 TYPE char10 , END OF lty_excel.DATA lt_zmmt001_excel lty_excel 类型表 。
将lt_zmmt001 移动 到 lt_zmmt001_excel 。
“因为使用SAP_CONVERT_TO_XLS_FORMAT输出是没有标题行的,所以我们加上标题
将初始行插入 lt_zmmt001_excel 分配字段-符号( <fs1> ) 索引 1 。数据 表结构类型参考 cl_abap_structdescr 。 表结构?= cl_abap_typedescr => describe_by_data ( ls_zmmt001 )。LOOP AT 表结构->组件 INTO DATA ( ls_comps )。将组件 sy - tabix OF STRUCTURE <fs1> 分配给字段- SYMBOL ( <fs2>
)。如果 sy - subrc EQ 0 。 <fs2> = ls_comps -名称。结束语。结束循环。调用函数 “SAP_CONVERT_TO_XLS_FORMAT”
出口
* I_FIELD_SEPERATOR =
i_line_header = 'X'
i_filename = li_filename
* I_APPL_KEEP = ' ' 表格 i_tab_sap_data = lt_zmmt001_excel * 正在更改* I_TAB_CONVERTED_DATA =例外 转换 失败= 1
其他 = 2 。
结束形式。