OLE 如何画下划线的横线,

上一篇 / 下一篇  2009-05-05 20:23:41 / 个人分类:ERP Develop

查看( 525 ) / 评论( 12 )
OLE 如何画下划线的横线,

谢谢
尝试过可总画不出

CALL METHOD OF range 'Range' = range1
    EXPORTING
    #1 = l_c1
    #2 = l_c2.

  CALL METHOD OF range1 'BORDERS' = borders
    EXPORTING
    #1 = '7'.
  SET PROPERTY OF borders 'LineStyle' = '3'.
  SET PROPERTY OF borders 'WEIGHT' = 3.
  SET PROPERTY OF borders 'ColorIndex' = '3'.
  FREE OBJECT borders.

TAG:

天黑请起早 fengleihen 发布于2009-05-05 22:23:33
CALL METHOD OF range 'Range' = range1

应该是
CALL METHOD OF excel 'Range' = range1
CALL METHOD OF range1 'select'.
Alex 王子的阳光城堡 shownbb 发布于2009-05-05 22:51:08
我现在就是这个横线画不了,


改 成这样的?


CALL METHOD OF excel 'Range' = range1
CALL METHOD OF range1 'select'.

  CALL METHOD OF range1 'BORDERS' = borders
    EXPORTING
    #1 = '7'.
  SET PROPERTY OF borders 'LineStyle' = '3'.
  SET PROPERTY OF borders 'WEIGHT' = 3.
  SET PROPERTY OF borders 'ColorIndex' = '3'.
  FREE OBJECT borders.
天黑请起早 fengleihen 发布于2009-05-06 07:39:13
CALL METHOD OF excel 'Range' = range1
    EXPORTING
    #1 = l_c1
    #2 = l_c2.
ps: excel 是你的应用对象
CALL METHOD OF range1 'select'.
  CALL METHOD OF range1 'BORDERS' = borders
    EXPORTING
    #1 = '7'.
  SET PROPERTY OF borders 'LineStyle' = '3'.
  SET PROPERTY OF borders 'WEIGHT' = 3.
  SET PROPERTY OF borders 'ColorIndex' = '3'.
  FREE OBJECT borders.
试试看行不行,在excel里面录制个宏,参照写下也可以的
ruyue318的个人空间 ruyue318 发布于2009-05-06 08:23:45
看这个实例吧,画实线、虚线,上颜色都有。


OLE.GIF


*Source: EXCEL OLE from SAP with several sheets
*Author: MHoffmann Created Date: 3/17/04
*Author Website:  Rating: 4 of 4
*Code Demo URL: none Views: 1,985
*Compatibility: ABAP
*Summary: Sample program to create xls files with several sheets. Also with frames, colors, fonts etc...



REPORT zs00_excel_ole_test .
* Marc Hoffmann HSE Consulting LLC, OrionFoodSystems LLC
* Written on 46B in 2003
*
* P_EXVIS        EXCEL visible
* P_WORKBK        Number of workbooks to create
* P_WSHEET        Number of sheets per workbook
*
PARAMETERS: p_fname LIKE rlgrap-filename
             DEFAULT 'C:\temp\testNN.xls'.

DATA: fname LIKE p_fname,
      kn LIKE sy-repid.
DATA: cnt TYPE i VALUE 0.


DATA: sheetname(10) VALUE 'TEST ',c_row TYPE i,
      scnt TYPE i,
      val(20), wb(2).

PARAMETERS: p_exvis AS CHECKBOX DEFAULT 'X',
            p_workbk(2) TYPE p DEFAULT '01',
            p_wsheet(2) TYPE p DEFAULT '01'.




CONSTANTS: ok TYPE i VALUE 0.
INCLUDE ole2incl.
DATA: excel     TYPE ole2_object,
      workbook  TYPE ole2_object,
      sheet     TYPE ole2_object,
      cell      TYPE ole2_object,
      cell1     TYPE ole2_object,
      column    TYPE ole2_object,
      range     TYPE ole2_object,
      borders   TYPE ole2_object,
      button    TYPE ole2_object,
      int      TYPE ole2_object,
      font      TYPE ole2_object,
      row       TYPE ole2_object.

DATA: application TYPE ole2_object,
      book        TYPE ole2_object,
      books       TYPE ole2_object.
DATA: ole_book    TYPE ole2_object.





DO p_workbk TIMES.
  MOVE p_fname TO fname.
  UNPACK sy-index TO wb.
  REPLACE 'NN' WITH wb INTO fname.
*
  PERFORM create_excel.

* create sheets and save
  PERFORM sheet.

  PERFORM save_book.
ENDDO.
WRITE: ' Done'.


*---------------------------------------------------------------------*
*       FORM create_excel                                             *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM create_excel.
  CREATE OBJECT excel 'EXCEL.APPLICATION'.

  IF sy-subrc NE 0.
    WRITE: / 'No EXCEL creation possible'.
    STOP.
  ENDIF.

  SET PROPERTY OF excel 'DisplayAlerts' = 0.

  CALL METHOD OF excel 'WORKBOOKS' = workbook .
*  Put Excel in background
  IF p_exvis EQ 'X'.
    SET PROPERTY OF excel 'VISIBLE' = 1.
  ELSE.
    SET PROPERTY OF excel 'VISIBLE' = 0.
  ENDIF.

*  Create worksheet
  SET PROPERTY OF excel 'SheetsInNewWorkbook' = 1.
  CALL METHOD OF workbook 'ADD'.
ENDFORM.                    "create_excel



*---------------------------------------------------------------------*
*       FORM save_book                                                *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM save_book.
  GET PROPERTY OF excel 'ActiveSheet' = sheet.
  FREE OBJECT sheet.
  FREE OBJECT workbook.

  GET PROPERTY OF excel 'ActiveWorkbook' = workbook.
  CALL METHOD OF workbook 'SAVEAS'
    EXPORTING
      #1 = p_fname
      #2 = 1.
  CALL METHOD OF workbook 'CLOSE'.
  CALL METHOD OF excel 'QUIT'.

  FREE OBJECT sheet.
  FREE OBJECT workbook.
  FREE OBJECT excel.
ENDFORM.                    "save_book


*---------------------------------------------------------------------*
*       FORM sheet                                                    *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM sheet.

  DO p_wsheet TIMES.
    UNPACK sy-index TO sheetname+5(2).

    IF sy-index GT 1.
      CALL METHOD OF excel 'WORKSHEETS' = sheet.
      CALL METHOD OF sheet 'ADD'.
      FREE OBJECT sheet.
    ENDIF.
    scnt = sy-index.
    CALL METHOD OF excel 'WORKSHEETS' = sheet
      EXPORTING
        #1 = scnt.
    CALL METHOD OF sheet 'ACTIVATE'.
    SET PROPERTY OF sheet     'NAME'       = sheetname.
    FREE OBJECT sheet.   "OK


    PERFORM fill_sheet.
*
    CALL METHOD OF excel 'Columns' = column.
    CALL METHOD OF column 'Autofit'.
    FREE OBJECT column.
*
*    call method of sheet 'BUTTON' = button.
*    call method of button 'ADD'.
*    set property of button 'fmButtonStyle' = 0.
*      exporting #1 = '96.75' #2 = '372' #3 = '123.75' #4 = '12'.
*    set property of button 'Characters' = 'ButtonTest'.

    FREE OBJECT button.
    FREE OBJECT font.
    FREE OBJECT int.
    FREE OBJECT cell.
    FREE OBJECT: cell1.
    FREE OBJECT range.
    FREE OBJECT borders.
    FREE OBJECT: column, row.
  ENDDO.

  FREE OBJECT font.
  FREE OBJECT int.
  FREE OBJECT cell.
  FREE OBJECT cell1.
  FREE OBJECT range.
  FREE OBJECT borders.
  FREE OBJECT column.
  FREE OBJECT row.
  FREE OBJECT sheet.
ENDFORM.                    "sheet


*---------------------------------------------------------------------*
*       FORM border                                                   *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  we                                                            *
*---------------------------------------------------------------------*
FORM border USING we.
*left
  CALL METHOD OF cell 'BORDERS' = borders
    EXPORTING
      #1 = '1'.
  SET PROPERTY OF borders 'LineStyle' = '1'.
  SET PROPERTY OF borders 'WEIGHT' = we.                    "4=max
  FREE OBJECT borders.
* right
  CALL METHOD OF cell 'BORDERS' = borders
    EXPORTING
      #1 = '2'.
  SET PROPERTY OF borders 'LineStyle' = '2'.
  SET PROPERTY OF borders 'WEIGHT' = we.
  FREE OBJECT borders.
* top
  CALL METHOD OF cell 'BORDERS' = borders
    EXPORTING
      #1 = '3'.
  SET PROPERTY OF borders 'LineStyle' = '3'.
  SET PROPERTY OF borders 'WEIGHT' = we.
  FREE OBJECT borders.
* bottom
  CALL METHOD OF cell 'BORDERS' = borders
    EXPORTING
      #1 = '4'.
  SET PROPERTY OF borders 'LineStyle' = '4'.
  SET PROPERTY OF borders 'WEIGHT' = we.
*    set property of borders 'ColorIndex' = 'xlAutomatic'.
  FREE OBJECT borders.
ENDFORM.                    "border

*---------------------------------------------------------------------*
*       FORM border2                                                  *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  we                                                            *
*---------------------------------------------------------------------*
FORM border2 USING we.
*left
  CALL METHOD OF cell 'BORDERS' = borders
    EXPORTING
      #1 = '1'.
  SET PROPERTY OF borders 'LineStyle' = '5'.
  SET PROPERTY OF borders 'WEIGHT' = we.                    "4=max
  FREE OBJECT borders.
* right
  CALL METHOD OF cell 'BORDERS' = borders
    EXPORTING
      #1 = '2'.
  SET PROPERTY OF borders 'LineStyle' = '6'.
  SET PROPERTY OF borders 'WEIGHT' = we.
  FREE OBJECT borders.
* top
  CALL METHOD OF cell 'BORDERS' = borders
    EXPORTING
      #1 = '3'.
  SET PROPERTY OF borders 'LineStyle' = '7'.
  SET PROPERTY OF borders 'WEIGHT' = we.
  FREE OBJECT borders.
* bottom
  CALL METHOD OF cell 'BORDERS' = borders
    EXPORTING
      #1 = '4'.
  SET PROPERTY OF borders 'LineStyle' = '8'.
  SET PROPERTY OF borders 'WEIGHT' = we.
*    set property of borders 'ColorIndex' = 'xlAutomatic'.
  FREE OBJECT borders.
ENDFORM.                                                    "border2

*---------------------------------------------------------------------*
*       FORM border3                                                  *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  we                                                            *
*---------------------------------------------------------------------*
FORM border3 USING we.
*left
  CALL METHOD OF cell 'BORDERS' = borders
    EXPORTING
      #1 = '1'.
  SET PROPERTY OF borders 'LineStyle' = '9'.
  SET PROPERTY OF borders 'WEIGHT' = we.                    "4=max
  FREE OBJECT borders.
* right
  CALL METHOD OF cell 'BORDERS' = borders
    EXPORTING
      #1 = '2'.
  SET PROPERTY OF borders 'LineStyle' = '10'.
  SET PROPERTY OF borders 'WEIGHT' = we.
  FREE OBJECT borders.
* top
  CALL METHOD OF cell 'BORDERS' = borders
    EXPORTING
      #1 = '3'.
  SET PROPERTY OF borders 'LineStyle' = '11'.
  SET PROPERTY OF borders 'WEIGHT' = we.
  FREE OBJECT borders.
* bottom
  CALL METHOD OF cell 'BORDERS' = borders
    EXPORTING
      #1 = '4'.
  SET PROPERTY OF borders 'LineStyle' = '12'.
  SET PROPERTY OF borders 'WEIGHT' = we.
*    set property of borders 'ColorIndex' = 'xlAutomatic'.
  FREE OBJECT borders.
ENDFORM.                                                    "border3


*---------------------------------------------------------------------*
*       FORM fill_cell                                                *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  color                                                         *
*  -->  pattern                                                       *
*---------------------------------------------------------------------*
FORM fill_cell USING color pattern.
  CALL METHOD OF cell 'INTERIOR' = int.
  SET PROPERTY OF int 'ColorIndex' = color.
  SET PROPERTY OF int 'Pattern' = pattern.
  FREE OBJECT int.
ENDFORM.                    "fill_cell

*---------------------------------------------------------------------*
*       FORM font                                                     *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  bold                                                          *
*  -->  size                                                          *
*---------------------------------------------------------------------*
FORM font USING bold size.
  CALL METHOD OF cell 'FONT' = font.
  SET PROPERTY OF font 'BOLD' = bold.
  SET PROPERTY OF font 'SIZE' = size.
  FREE OBJECT font.
ENDFORM.                    "font


*---------------------------------------------------------------------*
*       FORM fill_sheet                                               *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM fill_sheet.
  CALL METHOD OF excel 'RANGE' = cell EXPORTING #1 = 'A1'.
  PERFORM font          USING 1 '14'.
  SET PROPERTY OF cell    'VALUE' = 'Counter'.
  PERFORM fill_cell     USING '15' '1'.
  PERFORM border        USING '2'.
  FREE OBJECT cell.

  val = 'Workbook-Count'.
  MOVE wb TO val+16.
  CALL METHOD OF excel 'RANGE' = cell EXPORTING #1 = 'B1'.
  SET PROPERTY OF cell    'VALUE' = val.
  PERFORM fill_cell USING '14' '1'.
  PERFORM border USING '4'.
  FREE OBJECT cell.

  val = 'Sheet-Count'.
  UNPACK sy-index TO val+12.
  CALL METHOD OF excel 'RANGE' = cell EXPORTING #1 = 'C1'.
  SET PROPERTY OF cell    'VALUE' = val.
  PERFORM fill_cell USING '12' '1'.
  PERFORM border USING '4'.
  FREE OBJECT cell.

  CALL METHOD OF excel 'RANGE' = cell EXPORTING #1 = 'E3'.
  PERFORM border        USING '1'.
  FREE OBJECT cell.
  CALL METHOD OF excel 'RANGE' = cell EXPORTING #1 = 'E5'.
  PERFORM border        USING '2'.
  FREE OBJECT cell.
  CALL METHOD OF excel 'RANGE' = cell EXPORTING #1 = 'E7'.
  PERFORM border        USING '3'.
  FREE OBJECT cell.
  CALL METHOD OF excel 'RANGE' = cell EXPORTING #1 = 'E9'.
  PERFORM border        USING '4'.
  FREE OBJECT cell.
  CALL METHOD OF excel 'RANGE' = cell EXPORTING #1 = 'F3'.
  PERFORM border2       USING '1'.
  FREE OBJECT cell.
  CALL METHOD OF excel 'RANGE' = cell EXPORTING #1 = 'F5'.
  PERFORM border2       USING '2'.
  FREE OBJECT cell.
  CALL METHOD OF excel 'RANGE' = cell EXPORTING #1 = 'F7'.
  PERFORM border2       USING '3'.
  FREE OBJECT cell.
  CALL METHOD OF excel 'RANGE' = cell EXPORTING #1 = 'F9'.
  PERFORM border2       USING '4'.
  FREE OBJECT cell.
  CALL METHOD OF excel 'RANGE' = cell EXPORTING #1 = 'G3'.
  PERFORM border3       USING '1'.
  FREE OBJECT cell.
  CALL METHOD OF excel 'RANGE' = cell EXPORTING #1 = 'G5'.
  PERFORM border3       USING '2'.
  FREE OBJECT cell.
  CALL METHOD OF excel 'RANGE' = cell EXPORTING #1 = 'G7'.
  PERFORM border3       USING '3'.
  FREE OBJECT cell.
  CALL METHOD OF excel 'RANGE' = cell EXPORTING #1 = 'G9'.
  PERFORM border3       USING '4'.
  FREE OBJECT cell.

  val = 'ROW-Count'.

  DO 19 TIMES.
    c_row = sy-index + 1.
    UNPACK c_row TO val+12(4).
    CALL METHOD OF excel 'CELLS' = cell1 EXPORTING #1 = c_row #2 = 2.
    SET PROPERTY OF cell1    'VALUE' = val.
    FREE OBJECT cell1.
    CALL METHOD OF excel 'CELLS' = cell1 EXPORTING #1 = c_row #2 = 4.
    SET PROPERTY OF cell1    'VALUE' = val.
    FREE OBJECT cell1.
  ENDDO.



ENDFORM.                    "fill_sheet

*----------------------------------------------------------------------*
* You find SAP OLE programs under development Class 'SOLE'             *
*                                                                      *
*  MSTAPPL  Table Maintenance APPL                                     *
*  RSOLEDOC Document list                                              *
*  RSOLEIN0 OLE Load Type Information                                  *
*  RSOLEINT Type Info Loaded                                           *
*  RSOLETI0 OLE Object Browser                                         *
*  RSOLETI1 OLE Object Browser                                         *
*  RSOLETI2 OLE Object Browser                                         *
*  RSOLETI3 F4 Help For OLE Objects                                    *
*  RSOLETT1 OLE 2.0 Automation Demo Program                            *
*                                                                      *
* Transactions:                                                        *
* SOLE                                                                 *
* SOLO  - List of OLE applcations with loaded type info                *
*                                                                      *
*                                                                      *
* You will find the decription of possible objects and methods in the  *
* windows help file for excel.                                         *
*----------------------------------------------------------------------*

[ 本帖最后由 ruyue318 于 2009-5-6 08:26 编辑 ]
zltpc007发布于2009-05-06 10:22:29
你把7改成4
    CALL METHOD OF cells 'Borders' = borders
      EXPORTING
      #1 = '4'.
Alex 王子的阳光城堡 shownbb 发布于2009-05-06 10:58:06

QUOTE:

原帖由 fengleihen 于 2009-5-6 07:39 发表
CALL METHOD OF excel 'Range' = range1
    EXPORTING
    #1 = l_c1
    #2 = l_c2.
ps: excel 是你的应用对象
CALL METHOD OF range1 'select'.
  CALL METHOD OF range1 'BORDERS' = borders
    EXPORTING
    #1 = '7'.
  SET PROPERTY OF borders 'LineStyle' = '3'.
  SET PROPERTY OF borders 'WEIGHT' = 3.
  SET PROPERTY OF borders 'ColorIndex' = '3'.
  FREE OBJECT borders.
试试看行不行,在excel里面录制个宏,参照写下也可以的
还是不行。总画不出来,
你有没有一个小小的例 子,给看看?
Alex 王子的阳光城堡 shownbb 发布于2009-05-06 11:00:31

QUOTE:

原帖由 zltpc007 于 2009-5-6 10:22 发表
你把7改成4
    CALL METHOD OF cells 'Borders' = borders
      EXPORTING
      #1 = '4'.
也不行 ,我从1改到4都不出来一个,
Alex 王子的阳光城堡 shownbb 发布于2009-05-06 11:00:52
回复 #5 ruyue318 的帖子
谢谢!!
天黑请起早 fengleihen 发布于2009-05-06 11:24:21
INCLUDE OLE2INCL.

* OLE OBJECT
DATA: MYEXCEL    TYPE OLE2_OBJECT,
      MYSHEET    TYPE OLE2_OBJECT,
      MYCELL     TYPE OLE2_OBJECT,
      MYWORKBOOK TYPE OLE2_OBJECT.

CREATE OBJECT MYEXCEL 'EXCEL.APPLICATION'.

CALL METHOD OF MYEXCEL 'WORKBOOKS' = MYWORKBOOK.
SET PROPERTY OF MYEXCEL 'VISIBLE' = 1.
SET PROPERTY OF MYEXCEL 'SHEETSINNEWWORKBOOK' = 1.
CALL METHOD OF MYWORKBOOK 'ADD'.
* ADD VALUE
CALL METHOD OF MYEXCEL 'CELLS' = MYCELL
  EXPORTING
    #1 = 2
    #2 = 3.
SET PROPERTY OF MYCELL 'VALUE' = 'HELLO FENGLEIHEN'.
GET PROPERTY OF MYEXCEL 'ACTIVESHEET' = MYSHEET.
SET PROPERTY OF MYSHEET 'NAME' = 'TEST DRAW LINE'.
GET PROPERTY OF MYEXCEL 'ACTIVEWORKBOOK' = MYWORKBOOK.
PERFORM DRAW_BOTTOM_LINE USING 2 2 6 7 2.

* SAVE EXCEL
CALL METHOD OF MYWORKBOOK 'SAVEAS'
  EXPORTING
    #1 = 'C:\AA.XLS'
    #2 = 1
      .
CALL METHOD OF MYWORKBOOK 'CLOSE'.
CALL METHOD OF MYEXCEL 'QUIT'.
FREE OBJECT MYSHEET.
FREE OBJECT MYWORKBOOK.
FREE OBJECT MYEXCEL.

*&---------------------------------------------------------------------*
*&      Form SELECT_CELL.
*&---------------------------------------------------------------------*
*        SELECT_CELL
*&---------------------------------------------------------------------*
FORM SELECT_CELL USING X1 Y1 X2 Y2
                 CHANGING OT_CELLS TYPE OLE2_OBJECT.

  DATA: LO_CELLS1 TYPE OLE2_OBJECT,
        LO_CELLS2 TYPE OLE2_OBJECT.
* X: HORIZONTAL LINE Y: VERTICAL LINE
* SELECT CELLS
  IF X1 = X2 AND
     Y1 = Y2 .
    CALL METHOD OF MYEXCEL 'CELLS' = OT_CELLS
      EXPORTING
        #1 = Y1
        #2 = X1.
  ELSE.
    CALL METHOD OF MYEXCEL 'CELLS' = LO_CELLS1
      EXPORTING
        #1 = Y1
        #2 = X1.
    CALL METHOD OF MYEXCEL 'CELLS' = LO_CELLS2
      EXPORTING
        #1 = Y2
        #2 = X2.
    CALL METHOD OF MYEXCEL 'RANGE' = OT_CELLS
      EXPORTING
        #1 = LO_CELLS1
        #2 = LO_CELLS2.
  ENDIF.
  CALL METHOD OF OT_CELLS 'SELECT'.
  FREE OBJECT: LO_CELLS1,
               LO_CELLS2.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Form DRAW_BOTTOM_LINE.
*&---------------------------------------------------------------------*
*        DRAW_BOTTOM_LINE
*&---------------------------------------------------------------------*
FORM DRAW_BOTTOM_LINE USING X1 Y1 X2 Y2 IN_STYLE.

  DATA: LO_CELLS TYPE OLE2_OBJECT,
        LO_BORDER TYPE OLE2_OBJECT,
        LO_X1 TYPE I,
        LO_X2 TYPE I,
        LO_Y1 TYPE I,
        LO_Y2 TYPE I.
* recalculate left top point and right bottom point
  IF X1 > X2.
    LO_X1 = X2.
    LO_X2 = X1.
  ELSE.
    LO_X1 = X1.
    LO_X2 = X2.
  ENDIF.
  IF Y1 > Y2.
    LO_Y1 = Y2.
    LO_Y2 = Y1.
  ELSE.
    LO_Y1 = Y1.
    LO_Y2 = Y2.
  ENDIF.

  PERFORM SELECT_CELL USING LO_X1 LO_Y2 LO_X2 LO_Y2
                      CHANGING LO_CELLS.
* BODER PARAMETER: 1-LEFT,2-RIGHT,3-TOP,4-BOTTOM,5.6-diagonal
  CALL METHOD OF LO_CELLS 'BORDERS' = LO_BORDER
    EXPORTING
      #1 = '4' .
* LineStyle parameter: 1.7-solid, 2-dashed ,4-DashDot,9-xlSlantDashDot
  SET PROPERTY OF LO_BORDER 'LINESTYLE' = IN_STYLE.
  SET PROPERTY OF LO_BORDER 'WEIGHT' = '2'.
  FREE OBJECT: LO_CELLS,
               LO_BORDER.

ENDFORM.
Alex 王子的阳光城堡 shownbb 发布于2009-05-06 17:24:24
回复 #10 fengleihen 的帖子
不知道为什么,
我可以添加整个框的线,就是不能添加一ROW的整条横线。

[ 本帖最后由 shownbb 于 2009-5-6 19:48 编辑 ]
天黑请起早 fengleihen 发布于2009-05-06 17:48:32
INCLUDE OLE2INCL.

* OLE OBJECT
DATA: MYEXCEL    TYPE OLE2_OBJECT,
      MYSHEET    TYPE OLE2_OBJECT,
      MYCELL     TYPE OLE2_OBJECT,
      MYWORKBOOK TYPE OLE2_OBJECT.
DATA: LO_RANGE   TYPE OLE2_OBJECT.
DATA: LO_CELLS TYPE OLE2_OBJECT,
      LO_BORDER TYPE OLE2_OBJECT.
CREATE OBJECT MYEXCEL 'EXCEL.APPLICATION'.

CALL METHOD OF MYEXCEL 'WORKBOOKS' = MYWORKBOOK.
SET PROPERTY OF MYEXCEL 'VISIBLE' = 1.
SET PROPERTY OF MYEXCEL 'SHEETSINNEWWORKBOOK' = 1.
CALL METHOD OF MYWORKBOOK 'ADD'.
* ADD VALUE
CALL METHOD OF MYEXCEL 'CELLS' = MYCELL
  EXPORTING
    #1 = 2
    #2 = 3.
SET PROPERTY OF MYCELL 'VALUE' = 'HELLO FENGLEIHEN'.
GET PROPERTY OF MYEXCEL 'ACTIVESHEET' = MYSHEET.
SET PROPERTY OF MYSHEET 'NAME' = 'TEST DRAW LINE'.
GET PROPERTY OF MYEXCEL 'ACTIVEWORKBOOK' = MYWORKBOOK.

CALL METHOD OF MYEXCEL 'ROWS' = LO_RANGE
  EXPORTING
    #1 = 10.
CALL METHOD OF LO_RANGE 'SELECT'.
* BODER PARAMETER: 1-LEFT,2-RIGHT,3-TOP,4-BOTTOM,5.6-diagonal
  CALL METHOD OF LO_RANGE 'BORDERS' = LO_BORDER
    EXPORTING
      #1 = '4' .
* LineStyle parameter: 1.7-solid, 2-dashed ,4-DashDot,9-xlSlantDashDot
  SET PROPERTY OF LO_BORDER 'LINESTYLE' = 1.
  SET PROPERTY OF LO_BORDER 'WEIGHT' = '2'.
  FREE OBJECT: LO_CELLS,
               LO_RANGE,
               LO_BORDER.

*PERFORM DRAW_BOTTOM_LINE USING 2 2 6 7 2.

* SAVE EXCEL
CALL METHOD OF MYWORKBOOK 'SAVEAS'
  EXPORTING
    #1 = 'C:\AA.XLS'
    #2 = 1
      .
CALL METHOD OF MYWORKBOOK 'CLOSE'.
CALL METHOD OF MYEXCEL 'QUIT'.
FREE OBJECT MYSHEET.
FREE OBJECT MYWORKBOOK.
FREE OBJECT MYEXCEL.
Alex 王子的阳光城堡 shownbb 发布于2009-05-06 17:57:17
回复 #12 fengleihen 的帖子
谢谢你!

已经OK了,

关于OLE 有什么心得可以分享一下吗?
我来说两句

(可选)

日历

« 2012-05-17  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 16056
  • 日志数: 1418
  • 建立时间: 2008-08-23
  • 更新时间: 2009-09-29

RSS订阅

Open Toolbar