• 使用DOI保存多Sheet


      1 *&---------------------------------------------------------------------*
      2 *& Report Z3426EXCEL004
      3 *&---------------------------------------------------------------------*
      4 *&
      5 *&---------------------------------------------------------------------*
      6 REPORT z3426excel004.
      7 
      8 DATA:BEGIN OF gt_bukrs OCCURS 0,
      9        bukrs     TYPE t001-bukrs,
     10        butxt     TYPE t001-butxt,
     11        sheetname TYPE string,
     12      END OF gt_bukrs.
     13 DATA: BEGIN OF gt_file OCCURS 0,        "下载到本地格式
     14         bukrs(4)   TYPE c,
     15         field1(22) TYPE c,
     16         field2(22) TYPE c,
     17         field3(22) TYPE c,
     18         field4(22) TYPE c,
     19         field5(22) TYPE c,
     20         field6(22) TYPE c,
     21       END OF gt_file.
     22 
     23 
     24 gt_bukrs[] = VALUE #( ( bukrs = '1000' butxt = '测试公司0')
     25                     ( bukrs = '1001' butxt = '测试公司1')
     26                     ( bukrs = '1002' butxt = '测试公司2')
     27                     ( bukrs = '1003' butxt = '测试公司3')
     28                     ( bukrs = '1004' butxt = '测试公司4')
     29                     ( bukrs = '1005' butxt = '测试公司5') ).
     30 
     31 gt_file[] = VALUE #( ( bukrs = '1000' field1 = '测试' field2 = '测试' field3 = '测试' )
     32                      ( bukrs = '1001' field1 = '测试' field2 = '测试' field3 = '测试' )
     33                      ( bukrs = '1002' field1 = '测试' field2 = '测试' field3 = '测试' )
     34                      ( bukrs = '1003' field1 = '测试' field2 = '测试' field3 = '测试' )
     35                      ( bukrs = '1004' field1 = '测试' field2 = '测试' field3 = '测试' )
     36                      ( bukrs = '1005' field1 = '测试' field2 = '测试' field3 = '测试' )
     37                      ).
     38 
     39 DATA(filename) = 'C:\Users\XXXX\Desktop\Test\测试数据.xls'.
     40 PERFORM download_file.
     41 
     42 FORM download_file.
     43   INCLUDE ole2incl.
     44   DATA:lv_str TYPE string.
     45   DATA: excel     TYPE ole2_object,
     46         tempsheet TYPE ole2_object,
     47         sheet     TYPE ole2_object,
     48         cell      TYPE ole2_object,
     49         range     TYPE ole2_object,
     50         workbook  TYPE ole2_object,
     51         xlsname   TYPE string VALUE 'D:\测试数据.xls',
     52         line      TYPE i VALUE 0.
     53 
     54   CREATE OBJECT excel 'excel.application'.
     55   SET PROPERTY OF excel 'visible' = 0.
     56   CALL METHOD OF excel 'workbooks' = workbook.
     57   CALL METHOD OF workbook 'add'.
     58   CALL METHOD OF excel 'sheets' = sheet.
     59   CALL METHOD OF excel 'cells' = cell EXPORTING #1 = 1 #2 = 1.
     60   SET PROPERTY OF cell  'value' = '公司代码'.
     61   CALL METHOD OF excel 'cells' = cell EXPORTING #1 = 1 #2 = 2.
     62   SET PROPERTY OF cell  'value' = '公司代码描述'.
     63 
     64   LOOP AT gt_bukrs.
     65     line = sy-tabix + 1.
     66     CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 1.
     67     SET PROPERTY OF cell  'value' = gt_bukrs-bukrs.
     68     CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 2.
     69     SET PROPERTY OF cell  'value' = gt_bukrs-butxt.
     70   ENDLOOP.
     71 
     72   LOOP AT gt_bukrs.
     73     CALL METHOD OF excel 'sheets' = sheet.
     74     CALL METHOD OF sheet 'add'.
     75     CALL METHOD OF excel 'worksheets' = sheet EXPORTING #1 = gt_bukrs-sheetname.
     76     CALL METHOD OF sheet 'activate '.
     77     SET PROPERTY OF sheet 'name' = gt_bukrs-bukrs.
     78     CLEAR:line.
     79 
     80     line = line + 1.
     81     lv_str = '表头区域'.
     82     CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 1.
     83     SET PROPERTY OF cell  'value' = lv_str.
     84     CALL METHOD OF excel 'Range' = range
     85     EXPORTING
     86       #1 = 'A1'
     87       #2 = 'F1'.
     88     CALL METHOD OF range 'SELECT'.
     89     CALL METHOD OF range 'MERGE'.
     90     SET PROPERTY OF range  'MergeCells' = 1.
     91     SET PROPERTY OF range  'HorizontalAlignment' = 3.   "横向对齐
     92     SET PROPERTY OF range  'VerticalAlignment' = 2.
     93 
     94     line = line + 1.
     95     CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 1.
     96     SET PROPERTY OF cell  'value' = '编制单位'.
     97 
     98     CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 2.
     99     SET PROPERTY OF cell  'value' = gt_bukrs-butxt.
    100 
    101     CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 3.
    102     SET PROPERTY OF cell  'value' = `期间`.
    103 
    104     lv_str = sy-datum+0(4) && `年` && sy-datum+4(2) && `月`.
    105     CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 4.
    106     SET PROPERTY OF cell  'value' = lv_str.
    107 
    108     CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 5.
    109     SET PROPERTY OF cell  'value' = '单位'.
    110 
    111     CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 6.
    112     SET PROPERTY OF cell  'value' = '人民币元'.
    113 
    114     line = line + 1.
    115     CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 1.
    116     SET PROPERTY OF cell  'value' = '项目'.
    117 
    118     CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 2.
    119     SET PROPERTY OF cell  'value' = '行次'.
    120 
    121     CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 3.
    122     SET PROPERTY OF cell  'value' = '本月'.
    123 
    124     CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 4.
    125     SET PROPERTY OF cell  'value' = '本季'.
    126 
    127     CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 5.
    128     SET PROPERTY OF cell  'value' = '本年'.
    129 
    130     CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 6.
    131     SET PROPERTY OF cell  'value' = '上年'.
    132 
    133     LOOP AT gt_file WHERE bukrs = gt_bukrs-bukrs.
    134       line = line + 1.
    135 
    136       CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 1.
    137       SET PROPERTY OF cell  'value' = gt_file-field1.
    138 
    139       CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 2.
    140       SET PROPERTY OF cell  'value' = gt_file-field2.
    141 
    142       CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 3.
    143       SET PROPERTY OF cell  'value' = gt_file-field3.
    144 
    145       CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 4.
    146       SET PROPERTY OF cell  'value' = gt_file-field4.
    147 
    148       CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 5.
    149       SET PROPERTY OF cell  'value' = gt_file-field5.
    150 
    151       CALL METHOD OF excel 'cells' = cell EXPORTING #1 = line #2 = 6.
    152       SET PROPERTY OF cell  'value' = gt_file-field6.
    153     ENDLOOP.
    154 
    155   ENDLOOP.
    156   xlsname = filename.
    157   GET PROPERTY OF excel 'ActiveWorkbook ' = workbook.
    158   CALL METHOD OF workbook 'saveas' EXPORTING #1 = xlsname #2 = 1.
    159   CALL METHOD OF workbook 'close'.
    160   CALL METHOD OF excel 'quit'.
    161   FREE OBJECT workbook.
    162   FREE OBJECT excel.
    163   MESSAGE s001(00) WITH '文件已下载完成!'.
    164 ENDFORM.
  • 相关阅读:
    iOS推送通知
    KVO内部实现原理
    沙盒目录结构
    UITableView的常用属性和代理方法
    优秀文章的链接
    c++面试题
    递归练习
    c#连接mysql环境配置
    mysql命令详解
    十进制转二进制
  • 原文地址:https://www.cnblogs.com/1187163927ch/p/16371379.html
Copyright © 2020-2023  润新知