Progress读取Excel文件

记录下Progress读取Excel文件的办法。
更详细的请看 http://rich.uchytil.com/progress/excel.html

readexcel.p

DEF VAR vchExcel AS COM-HANDLE NO-UNDO.
DEF VAR vchWorkBook AS COM-HANDLE NO-UNDO.
DEF VAR vchWorkSheet AS COM-HANDLE NO-UNDO.
DEF VAR vRow AS INT NO-UNDO.
def var vError as logical.

def temp-table xypo
    field xypo_nbr like po_nbr
    field xypo_part like pt_part
    field xypo_qty like pod_qty_ord
    field xypo_ord_date as date
    index xypo is primary xypo_nbr ascending.

for each xypo:
    delete xypo.
end.

CREATE "Excel.Application":U vchExcel.
ASSIGN vchExcel:VISIBLE = FALSE
    vchWorkBook = vchExcel:WorkBooks:OPEN("d:/tmp/test.xls")
    vchWorkSheet = vchExcel:Sheets:ITEM(1).



GetExcel-BLK:
REPEAT TRANSACTION:
    ASSIGN vError = FALSE
           vRow = vRow + 1.
    /** QUIT WHEN REACH A BLANK LINE **/
    IF vchWorkSheet:RANGE("A":U + STRING(vRow)):TEXT EQ "" THEN LEAVE GetExcel-BLK.
    CREATE xypo.
    /* IMPORT FROM EXCEL */
    ASSIGN xypo.xypo_nbr = vchWorkSheet:Range("A":U + STRING(vRow)):VALUE
           xypo.xypo_part = vchWorkSheet:Range("B":U + STRING(vRow)):VALUE
           xypo.xypo_qty = vchWorkSheet:Range("C":U + STRING(vRow)):VALUE
           xypo.xypo_ord_date = vchWorkSheet:Range("D":U + STRING(vRow)):VALUE
           NO-ERROR.
    /** WAS THERE AN ERROR READING THE SPREADSHEET? **/
    IF ERROR-STATUS:ERROR THEN DO:
        ASSIGN vError = YES.
        MESSAGE ERROR-STATUS:GET-MESSAGE(1) VIEW-AS ALERT-BOX.
    END.
END. /** END OF REPEAT TRANSACTION - GetExcel-BLK **/


vchWorkBook:CLOSE.
RELEASE OBJECT vchWorkSheet.
RELEASE OBJECT vchWorkBook.
vchExcel:QUIT.
RELEASE OBJECT vchExcel.

for each xypo:
    display
        xypo.
end.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值