SAP excel Export (Export via XML) example

The first step: excel template into XML files through Notepad to open

Step Two: Configure XML code (FIG) in at STRANS:

 

1. Create STRANS

 

 

 

2. Profiles

 

 

Configuration example (substantially XML file code, just add LOOP through the bad data (table arranged at 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

Guess you like

Origin www.cnblogs.com/jimi520/p/12103122.html