一个简单小例子,将excel模板用STRANS生成XML格式,abap调用使用。

步骤如下:

我的数据源

相应的excel模板为:

将excel模板另存为XML文档,记事本打开,查看。

用t-code STRANS生成XML:

将excel模板生成的xml文档上传,其实我自己通常是保存一个模板,只要修改一下红色代码的地方,改为你sap数据的element,如下:

<?sap.transform simple?>
<?mso-application progid=”Excel.Sheet”?>
<tt:transform xmlns:tt=”http://www.sap.com/transformation-templates”>
<tt:root name=”table”/>
<tt:template>

<Workbook xmlns=”urn:schemas-microsoft-com:office:spreadsheet”
 xmlns:o=”urn:schemas-microsoft-com:office:office”
 xmlns:x=”urn:schemas-microsoft-com:office:excel”
 xmlns:ss=”urn:schemas-microsoft-com:office:spreadsheet”
 xmlns:html=”http://www.w3.org/TR/REC-html40″>
 <ExcelWorkbook xmlns=”urn:schemas-microsoft-com:office:excel”>
 </ExcelWorkbook>
 <Styles>
  <Style ss:ID=”Default” ss:Name=”Normal”>
   <Alignment ss:Vertical=”Bottom”/>
   <Borders/>
   <Font ss:FontName=”Arial” x:Family=”Swiss”/>
   <Interior/>
   <NumberFormat/>
   <Protection/>
  </Style>
  <Style ss:ID=”s62″>
   <Alignment ss:Horizontal=”Left” ss:Vertical=”Bottom”/>
  </Style>
  <Style ss:ID=”s63″>
   <Borders>
    <Border ss:Position=”Bottom” ss:LineStyle=”Continuous” ss:Weight=”1″/>
    <Border ss:Position=”Left” ss:LineStyle=”Continuous” ss:Weight=”1″/>
    <Border ss:Position=”Right” ss:LineStyle=”Continuous” ss:Weight=”1″/>
    <Border ss:Position=”Top” ss:LineStyle=”Continuous” ss:Weight=”1″/>
   </Borders>
   <Interior ss:Color=”#00CCFF” ss:Pattern=”Solid”/>
  </Style>
 </Styles>
      <Worksheet ss:Name=”Sheet1″>
        <Table  x:FullColumns=”1″ x:FullRows=”1″>
          <tt:loop ref=”.table”>
            <Row>

<Cell><Data ss:Type=”String”><tt:value ref=”STUID”/></Data></Cell>
              <Cell><Data ss:Type=”String”><tt:value ref=”STUNM”/></Data></Cell>
              <Cell><Data ss:Type=”String”><tt:value ref=”STUSX”/></Data></Cell>
              <Cell><Data ss:Type=”String”><tt:value ref=”STUTP”/></Data></Cell>
              <Cell><Data ss:Type=”String”><tt:value ref=”STUAD”/></Data></Cell>
            </Row>
          </tt:loop>
        </Table>
      </Worksheet>
    </Workbook>
  </tt:template>
</tt:transform>

接下来程序调用:

程序界面,获得文件路径:

最后结果如下:

调用的程序代码如下:

*&———————————————————————*
*& Report  YY_ELCT
*&
*&———————————————————————*
*&
*&
*&———————————————————————*

REPORT  YY_ELCT.

types:begin of ty_out,
      stuid type string,
      stunm type string,
      stusx type string,
      stutp type string,
      stuad type string,
     end of ty_out.
data:gt_out type table of ty_out,
     gw_out type ty_out.

data:gt_student type table of yyt_student,
     gw_student type yyt_student.
data:g_xmlstr type string,
     gt_xml type standard table of string,
     gw_xml like line of gt_xml.
data g_filename type string.
selection-screen begin of block blk1 with frame title text-001.
parameters: p_down  like rlgrap-filename default ‘D:\’.
selection-screen end of block blk1.

initialization.
*&———————————————————————*
* AT SELECTION-SCREEN
*&———————————————————————*
at selection-screen on value-request for p_down.
  call function ‘WS_FILENAME_GET’
    exporting
      def_path         = p_down
      title            = ‘Choose your file’(120)
      mode             = ‘S’
    importing
      filename         = p_down
    exceptions
      inv_winsys       = 1
      no_batch         = 2
      selection_cancel = 3
      selection_error  = 4
      others           = 5.
  check sy-subrc = 0 and not p_down is initial.

start-of-selection.

“get data
select * into table gt_student
  from yyt_student.
“down file
clear gw_out.
gw_out-stuid = ‘Student Id’.
gw_out-stunm = ‘Student Name’.
gw_out-stusx = ‘Student Sex’.
gw_out-stutp = ‘Student Telphone’.
gw_out-stuad = ‘Student Address’.
append gw_out to gt_out.

clear gw_out.
loop at gt_student into gw_student.
  move-corresponding gw_student to gw_out.
  append gw_out to gt_out.
  clear gw_out.
endloop.

call transformation ystu_excel
  source table = gt_out
  result xml g_xmlstr.

replace first occurrence of ‘encoding=”utf-16″‘ in g_xmlstr with ‘encoding=”gbk”‘.
append g_xmlstr to gt_xml.

g_filename = p_down.
call function ‘GUI_DOWNLOAD’
  exporting
    filename = g_filename
    codepage = ‘8400′
    filetype = ‘ASC’
  tables
    data_tab = gt_xml.
if sy-subrc eq 0.
   message ‘Success’ type ‘S’.
else.
   message ‘Download file fail’ type ‘I’.
endif.

Transformation XML(TCODE-STRANS)相关推荐

  1. Java 项目 JSON 转 XML(By fastjson)

    Java 项目 JSON 转 XML(By fastjson) package com.test;import java.util.Iterator; import java.util.Map.Ent ...

  2. day29(对象转xml(使用java))

    通常使用xStream工具. 将集合,数组,对象转成XML. 导入两个包: xpp3_min-1.1.4c.jar xstream-1.4.4.jar 自定义一个类 package com.baidu ...

  3. XML——StAX Streaming API for XML(read+write)

    [0]README 0.1) reshipping from http://www.journaldev.com/1191/how-to-read-xml-file-in-java-using-jav ...

  4. TestNG中的参数化– DataProvider和TestNG XML(带有示例)

    测试自动化,或所谓的自动化测试,并不像听起来那样容易. 必须考虑所有可能的用户交互的所有排列和组合,并且在此基础上,您将必须创建测试脚本以通过多种浏览器和OS组合来验证Web应用程序. 这就是参数化在 ...

  5. CDATA C#操作XML(无命名空间),添加/删除/编辑节点

    xml文件<?xml version="1.0" encoding="utf-8"?> <Books> <Book ID=&quo ...

  6. SAP 如何批量扩充(复制)科目到其他子公司(T-CODE: FS15)?

    SAP 科目主数据管理常用的事务代码: 科目的创建分科目表层(FSP0): 公司代码层(FSS0): 集中创建(FS00). 现假设我们成立一家新的子公司,需要把母公司的科目批量复制到子公司,如何快速 ...

  7. Dom4j解析XML(详解)

    1.XML解析的方式介绍 在日常开发中常见的XML解析方式有如下两种: 1.DOM解析 DOM解析要求解析器将整个XML文件全部加载到内存中,生成一个Document对象. 1.优点:元素和元素之间保 ...

  8. SAP 成品发布标准成本之后工艺路线改变,导致对应工单报工时成本中心出错 (TCODE MFBF)<转载>

    原文链接:https://zhuanlan.zhihu.com/p/572130604 背景: 在重复制造行业,成品入库与反冲一般是分开完成的,反冲一般通过后台作业由系统自动完成.然而,最近却出现了这 ...

  9. 翻译系统文本或者其他文本无法直接生成请求号(Request NO)解决方法(T-CODE:SLXT)

    SAP系统中经常遇到需要翻译文本的需求,如将 EN->CN等 示例如下:数据元素J_3RM_TURNTYP 将EN文本翻译为对应的CN文本 效果如下 完成上述翻译之后,保存激活并没有产生请求号, ...

最新文章

  1. 知乎服务化的实践与思考
  2. LightGBM模型_相关资料整理
  3. abaqus分析用户手册单元卷_作用卷、分析卷、材料卷三件套,让你也能熟练应用Abaqus...
  4. 弹性盒子内容体居右对其_CSS怎么实现弹性盒中的元素居中对齐
  5. 使用VS2005调试ASP程序
  6. 妙用 background 实现花式文字效果
  7. TypeError: Router.use() requires a middleware function but got a Object报错解决
  8. 【C++进阶】C++创建文件/屏幕输出流类(将信息同时输出到文件和屏幕)
  9. kali BEEF-XSS启动报错解决
  10. 关于为什么10000000可以表示-128
  11. php前台怎么显示图片,长沙培训php开发(php怎么显示图片)
  12. 《薄世宁医学通识讲义》笔记
  13. 鸿蒙之始有几个老婆,先天五太
  14. Linux学习总结(60)——Linux系统常用命令速查手册
  15. java报错establishing_JDBC连接SQLServer时出现错误Error establishing socket.的解决。
  16. 计算机界面视频录制软件,电脑版的录视频软件如何使用?录屏精灵为大家介绍基本操作...
  17. locust工具学习笔记(三)-Tasks属性、tag修饰符、TaskSet类
  18. STM32 B3 B5 A13 A14 A15端口复用
  19. 防火墙——防火墙基础知识
  20. 期刊论文发表引用部分会算重复率吗

热门文章

  1. 项目中常用的 iOS 第三方库
  2. UVa 11466 - Largest Prime Divisor
  3. 大数据Java基础第十九天作业
  4. struts2使用注解--ACTION中的应用
  5. C/C++ 语言中的表达式求值
  6. chmod 是一条在Unix系统中用于控制用户对文件的权限的命令
  7. 用友BIP助力大型企业构建“敏态+稳态”的数智企业摩天
  8. 使用SourceTree拉取代码出现Permission denied (publickey)
  9. 20165232 2017-2018-2《Java程序设计》结对编程一 第一周总结
  10. 利用Oracle虚拟私有数据库进行整合