OLE 可不可以实现EXCEL里面的冻结窗格的功能.

[复制链接]
查看11 | 回复2 | 2007-9-16 01:04:17 | 显示全部楼层 |阅读模式
OLE 可不可以实现EXCEL里面的冻结窗格的功能.????
谢谢!
有的可以给个例子吗?谢谢!!
回复

使用道具 举报

千问 | 2007-9-16 01:04:17 | 显示全部楼层
REPORT ZTEST.
INCLUDE OLE2INCL.
* OLE OBJECT
DATA: WK_EXCEL TYPE OLE2_OBJECT.
START-OF-SELECTION.
PERFORM CREATE_EXCEL.
PERFORM FREEZE_WINDOWS.
PERFORM SAVE_EXCEL USING 'C:\TEST.XLS'.
*&---------------------------------------------------------------------*
*&FormCREATE_EXCEL.
*&---------------------------------------------------------------------*
*CREATE A EXCEL PROCESS
*&---------------------------------------------------------------------*
FORM CREATE_EXCEL.
DATA: LO_WORKBOOK TYPE OLE2_OBJECT.
* CREATE EXCEL OBJCET
CREATE OBJECT WK_EXCEL 'EXCEL.APPLICATION'.
IF SY-SUBRC0.
STOP.
ENDIF.
* DISABLE ALERTS
SET PROPERTY OF WK_EXCEL 'DisplayAlerts' = 0.
* CREATE WORKBOOK
CALL METHOD OF WK_EXCEL 'WORKBOOKS' = LO_WORKBOOK.
SET PROPERTY OF WK_EXCEL 'VISIBLE' = 0.
SET PROPERTY OF WK_EXCEL 'SheetsInNewWorkbook' = 1.
CALL METHOD OF LO_WORKBOOK 'ADD'.
FREE OBJECT LO_WORKBOOK.
ENDFORM.
*&---------------------------------------------------------------------*
*&FormFREEZE_WINDOWS.
*&---------------------------------------------------------------------*
*FREEZE_WINDOWS
*&---------------------------------------------------------------------*
FORM FREEZE_WINDOWS.
DATA: LO_ACT TYPE OLE2_OBJECT.
DATA: LO_SHEET TYPE OLE2_OBJECT.
* MODIFY SHEET'S NAME
CALL METHOD OF WK_EXCEL 'WORKSHEETS' = LO_SHEET
EXPORTING #1 = 1.
CALL METHOD OF LO_SHEET 'ACTIVATE'.
CALL METHOD OF WK_EXCEL 'ActiveWindow' = LO_ACT.
PERFORM SELECT_CELL USING 3 4.
SET PROPERTY OF LO_ACT 'FreezePanes' = 1.
FREE OBJECT LO_SHEET.
FREE OBJECT LO_ACT.
ENDFORM.
*&---------------------------------------------------------------------*
*&Form SELECT_CELL.
*&---------------------------------------------------------------------*
*SELECT_CELL
*&---------------------------------------------------------------------*
FORM SELECT_CELL USING X1 Y1.
DATA: LO_CELLS1 TYPE OLE2_OBJECT,
LO_CELLS2 TYPE OLE2_OBJECT.
* X: HORIZONTAL LINE Y: VERTICAL LINE
* SELECT CELLS
CALL METHOD OF WK_EXCEL 'CELLS' = LO_CELLS1
EXPORTING
#1 = Y1
#2 = X1.
CALL METHOD OF LO_CELLS1 'SELECT'.
SET PROPERTY OF LO_CELLS1 'VALUE' = 'HELLO WORD'.
FREE OBJECT: LO_CELLS1,

LO_CELLS2.
ENDFORM.
*&---------------------------------------------------------------------*
*&Form SAVE_EXCEL.
*&---------------------------------------------------------------------*
*SAVE_EXCEL
*&---------------------------------------------------------------------*
FORM SAVE_EXCEL USING IN_FNAME.
DATA: LO_WORKBOOK TYPE OLE2_OBJECT.
GET PROPERTY OF WK_EXCEL 'ActiveWorkbook' = LO_WORKBOOK.
CALL METHOD OF LO_WORKBOOK 'SaveAs'
EXPORTING
#1 = IN_FNAME.
CALL METHOD OF LO_WORKBOOK 'CLOSE'.
CALL METHOD OF WK_EXCEL 'QUIT'.
FREE OBJECT LO_WORKBOOK.
FREE OBJECT WK_EXCEL.
ENDFORM.
希望对你有帮助。做OLE处理EXCEL还是要参考vba的!
回复

使用道具 举报

千问 | 2007-9-16 01:04:17 | 显示全部楼层
谢谢你!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行