第一步:將excel模板轉成XML文件 通過記事本打開
第二步:在STRANS處配置XML代碼(如圖):
1.創建STRANS
2.配置文件
配置例子(基本是XML文件代碼,只需加LOOP循壞數據(table處配置LOOP)):
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="DATA1"/>
<tt:template>
<?mso-application progid="Excel.Sheet"?>
<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">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Created>2006-09-13T11:21:51Z</Created>
<LastSaved>2006-09-13T11:21:55Z</LastSaved>
<Version>16.00</Version>
</DocumentProperties>
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
<RemovePersonalInformation/>
</OfficeDocumentSettings>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<WindowHeight>9510</WindowHeight>
<WindowWidth>24000</WindowWidth>
<WindowTopX>0</WindowTopX>
<WindowTopY>0</WindowTopY>
<ProtectStructure>False</ProtectStructure>
<ProtectWindows>False</ProtectWindows>
</ExcelWorkbook>
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Center"/>
<Borders/>
<Font ss:Color="#000000" ss:FontName="宋體" ss:Size="11" x:CharSet="134"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
</Styles>
<Worksheet ss:Name="Sheet1">
<Table ss:DefaultColumnWidth="54" ss:DefaultRowHeight="13.5" x:FullColumns="1" x:FullRows="1">
<Row ss:AutoFitHeight="0">
<Cell>
<Data ss:Type="String">物料</Data>
</Cell>
<Cell>
<Data ss:Type="String">描述</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell>
<Data ss:Type="String">ztest</Data>
</Cell>
<Cell>
<Data ss:Type="String">ztest</Data>
</Cell>
</Row>
<tt:loop ref=".DATA1">
<Row>
<Cell ss:StyleID="Default">
<Data ss:Type="String">
<tt:value ref="MATNR"/>
</Data>
</Cell>
<Cell ss:StyleID="Default">
<Data ss:Type="String">
<tt:value ref="MAKTX"/>
</Data>
</Cell>
</Row>
</tt:loop>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<Unsynced/>
<Print>
<ValidPrinterInfo/>
<PaperSizeIndex>9</PaperSizeIndex>
<HorizontalResolution>200</HorizontalResolution>
<VerticalResolution>200</VerticalResolution>
</Print>
<Selected/>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>1</ActiveRow>
<ActiveCol>1</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="Sheet2">
<Table ss:DefaultColumnWidth="54" ss:DefaultRowHeight="13.5" x:FullColumns="1" x:FullRows="1">
<Row ss:AutoFitHeight="0"/>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<Unsynced/>
<Print>
<ValidPrinterInfo/>
<PaperSizeIndex>9</PaperSizeIndex>
<HorizontalResolution>200</HorizontalResolution>
<VerticalResolution>200</VerticalResolution>
</Print>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="Sheet3">
<Table ss:DefaultColumnWidth="54" ss:DefaultRowHeight="13.5" x:FullColumns="1" x:FullRows="1">
<Row ss:AutoFitHeight="0"/>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<Unsynced/>
<Print>
<ValidPrinterInfo/>
<PaperSizeIndex>9</PaperSizeIndex>
<HorizontalResolution>200</HorizontalResolution>
<VerticalResolution>200</VerticalResolution>
</Print>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
</Workbook>
</tt:template>
</tt:transform>
第三步,程序
程序導出例子:
*&---------------------------------------------------------------------*
*& Report ZMMTEST_XML
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zmmtest_xml.
*& CALL TRANSFORMATION的方法生成XML例程
*& 適用ECC5以上系統
*& 普通方法生成XML:http://blog.chinaunix.net/u1/40527/showart_468389.html
*&---------------------------------------------------------------------*
DATA: BEGIN OF it_xml OCCURS 0,
line(1000) TYPE c,
END OF it_xml.
DATA: w_xml TYPE string,
w_len TYPE i,
w_fname TYPE string.
DATA: BEGIN OF line OCCURS 0,
matnr LIKE mara-matnr ,
maktx TYPE string ,
END OF line .
DATA: BEGIN OF line2 OCCURS 0,
class LIKE m_wwgha-class,"部門
kschl LIKE m_wwgha-kschl,"DESC
END OF line2 .
DATA: itab_matnr LIKE TABLE OF line ,
itab_class LIKE TABLE OF line2 .
START-OF-SELECTION.
PERFORM getdata.
PERFORM create_xml.
*---------------------------------------------------------------------*
* FORM getdata *
*---------------------------------------------------------------------*
FORM getdata.
* SELECT matnr maktx FROM makt
* INTO CORRESPONDING FIELDS OF TABLE line.
* UP TO 100 ROWS.
* WHERE spras = '1' .
SELECT
mara~matnr
makt~maktx
FROM mara
INNER JOIN makt ON mara~matnr = makt~matnr
INTO CORRESPONDING FIELDS OF TABLE line
* UP TO 1930 ROWS
WHERE
mara~matnr <> '12181002A' and
mara~matnr <> '320002002 ' .
* DO 20000 TIMES .
* line-matnr = '000600001' .
* line-maktx = '第三季度我近段時間的是多少的聖誕節薩克的卡薩就斷開撒嬌的啊' .
* APPEND line .
* line-matnr = '000600009' .
* line-maktx = 'GRREGEWFWFEWDQIWJDS DAD的啟吾東疆 都是的按時大大' .
* APPEND line .
* ENDDO.
MOVE line[] TO itab_matnr[].
* SELECT
* a~matnr
** b~wgbez
* INTO CORRESPONDING FIELDS OF TABLE itab_matnr
* FROM mara AS a
* INNER JOIN t023t AS b ON a~matkl = b~matkl
* UP TO 100 ROWS.
* SELECT class kschl FROM m_wwgha
* INTO TABLE itab_class
* UP TO 4 ROWS
* WHERE spras IN ('1','E') .
ENDFORM. "getdata
*&---------------------------------------------------------------------*
*& Form create_xml
*&---------------------------------------------------------------------*
FORM create_xml.
CALL TRANSFORMATION ztest
SOURCE data1 = itab_matnr
RESULT XML w_xml.
CALL FUNCTION 'SCMS_STRING_TO_FTEXT'
EXPORTING
text = w_xml
IMPORTING
length = w_len
TABLES
ftext_tab = it_xml.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:\Documents and Settings\Administrator\桌面\xm61.xls'
filetype = 'BIN'
IMPORTING
filelength = w_len
TABLES
data_tab = it_xml.
ENDFORM. "create_xml