ABAP OLE

对象参照类  OLE2_OBJECT(OLE所有对象都是参照它)

创建EXCEL 以及追加新的SHEET页

  IF U_FLG IS NOT INITIAL.
*    新创建EXCEL文件对象
    CREATE OBJECT EXCEL 'EXCEL.APPLICATION'.
    IF sy-subrc <> 0.
      MESSAGE '没有检测到Excel软件,无法完成打印。请正确安装Excel。' TYPE 'E' .
    ENDIF.
    SET PROPERTY OF EXCEL  'VISIBLE' = 0.         "不显示窗口
*    获取工作簿对象
    GET PROPERTY OF EXCEL 'WORKBOOKS' = workbook.
    GET PROPERTY OF WORKBOOK 'Application' = APPLICATION.     "获取exec了工作页对象

*   打开指定路劲EXCEL文件
*    CALL METHOD OF
*      workbook
*      'OPEN'
*      EXPORTING
*        #1 = filename.

    SET PROPERTY OF APPLICATION 'SheetsInNewWorkbook' = 1.    "设定新建EXCEL只有一个sheet页签
    CALL METHOD OF WORKBOOK 'Add' = NEWBOOK.                  "呼出工作簿的新增功能对象
    GET PROPERTY OF APPLICATION 'ActiveSheet' = ACTIVESHEET.  "获取当前操作的SHEET页
    SET PROPERTY OF ACTIVESHEET 'Name' = U_FNAME.             "给当前页设定名称
    GET PROPERTY OF APPLICATION 'ActiveSheet' = sheets .      "获取激活页
    GET PROPERTY OF sheets 'Name' = name.                     "获取激活页名
  ELSE.
*   创建新的sheet页
    GET PROPERTY OF newbook 'Sheets' = sheet.                 "获取新建工作簿的SHEET对象
    CALL METHOD OF sheet 'Add' = newsheet .                   "新增SHEET功能对象
    SET PROPERTY OF newsheet 'Name' =  U_FNAME.               "新增sheet命名
    GET PROPERTY OF newbook 'ActiveSheet' = sheets.           "
    GET PROPERTY OF sheets 'Name' = name.
  ENDIF.

  CALL METHOD OF excel 'ACTIVEWINDOW' = activewindow.       "得到活动窗口对象
  SET PROPERTY OF activewindow 'DISPLAYGRIDLINES' = 1.      "隐藏格线(虚线) 1,0

新建的时已经存在一个SHEET页 ,所有不需要创建SHEET,追加SHEET页时,需要创建新的SHEET页

2.单元格操作

* 指定工作簿中单元格范围
  CALL METHOD OF excel 'CELLS' = cell1    "单元格开始点
    EXPORTING
    #1 = p_top                      "起始行
    #2 = p_left.                    "起始列

  CALL METHOD OF excel 'CELLS' = cell2    "单元格结束点
    EXPORTING
    #1 = p_buttom                    "结束行
    #2 = p_right.                    "结束列

  CALL METHOD OF excel 'RANGE' = range    "以开始点结束点形成范围(X轴Y轴二维)
    EXPORTING
    #1 = cell1
    #2 = cell2.

  CALL METHOD OF range 'SELECT'.          "选中范围单元格对象

    CALL METHOD OF range 'MERGE' .          "单元格合并对象

    SET PROPERTY OF range 'MergeCells' = 1.  "合并居中
    
    SET PROPERTY OF range 'WrapText' = 1.    "自动换行


*  设定对齐方式(水平方向:1——无对齐; 2——左对齐; 3——居中 ;4——右对齐)
*             (垂直方向:1——左对齐; 2——居中 ;3——右对齐)
    SET PROPERTY OF range  'HorizontalAlignment' = P_Alignment .   "横向对齐
    SET PROPERTY OF range  'VerticalAlignment' = 2.      "纵向对齐


    GET PROPERTY OF range 'COLUMNS' = COLS .  "获取列属性

    SET PROPERTY OF COLS 'COLUMNWIDTH' = 2.   "设定列宽

    GET PROPERTY OF range 'ROWS' = ROWS.    "获取行对象

    SET PROPERTY OF ROWS 'ROWHEIGHT' = P_HIGHT. "设置行高

*    设定单元格字体属性
    CALL METHOD OF range 'FONT' = font.   "字体方法
    SET PROPERTY OF font 'Bold' = P_BOLD.      "粗体
    SET PROPERTY OF font 'Name' = '宋体'. "字体体
    SET PROPERTY OF font 'Size' = 11.     "字体大小
    SET PROPERTY OF range 'NumberFormatLocal' = 'G/通用格式'.   "设定字体格式
*   设定边框
    CALL METHOD OF range 'BORDERS' = borders.  "设置边框
    SET PROPERTY OF borders 'LineStyle' = '1'. "边框样式
    SET PROPERTY OF borders 'WEIGHT' = '2'.    "边框宽度
    SET PROPERTY OF borders 'ColorIndex' = '0'.
*   给单元格输入内容
    SET PROPERTY OF cell1 'VALUE' = U_VALUE.      "表格设定值

针对单元格对的属性设定需要先选中单元格,也就是rang对象要存在

3 保存释放对象

SET PROPERTY OF excel 'DisplayAlerts' = 'false'. "屏蔽是否另存为提示框

*  SET PROPERTY OF excel  'SCREENUPDATING' = 1.      "打开刷新 (这个暂时没有搞懂啥作用)

  GET PROPERTY OF excel 'ActiveWorkbook' = workbook. "获取当前操作的工作簿

  CALL METHOD OF workbook 'SAVEAS'                   "工作簿保存
    EXPORTING
      #1 = filename
      #2 = 1.

  CALL METHOD OF workbook 'CLOSE'.                   "关闭工作簿

  CALL METHOD OF                                     "关闭EXCEL程序(仅限程序创建的活动)
    excel
    'QUIT'.


 FREE OBJECT excel.                                  "释放对象(最好是把所有的对象都释放掉)
 FREE OBJECT workbook.

4.OLE很多属性可以用EXCEL的宏录制出来查看,然后转化为ABAP的OLE,如下面的宏代码,有些属性不知道的可以录制宏查看

  此处为EXCEL宏代码
    Range("J2:W3").Select        "选中区域
    With Selection
        .HorizontalAlignment = xlCenter      "横向对齐方式       
        .VerticalAlignment = xlBottom        "纵向对齐方式
        .WrapText = True                     "自动换行
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = True                   "合并居中
    End With

下面是一些其它资料转载下大神作品

ABAP OLE   EXCEL宏录制  ABAP OLE完整源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随记随心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值