通过 COM-Object 检查 excel 中的小数位数时出现问题

问题描述 投票:0回答:0

我正在用OpenEdge Progress 11.7编写一个程序,用于验证内部用户提供的Excel文件。我需要验证的事情之一是电子表格中十进制数字的位数。在 Excel 中,小数显示为 4 位小数。但是,如果我在 Progress 中调用 LENGTH 函数来读取小数,它会返回一个整数,表明小数有超过 4 位小数(请参阅下面的屏幕截图)。有什么我可以采用的解决方法吗?请接受我对任何建议的感激之情。

伪代码:

DEFINE VARIABLE chExcel AS COM-HANDLE.
DEFINE VARIABLE chWB AS COM-HANDLE.
DEFINE VARIABLE chWS AS COM-HANDLE.
DEFINE VARIABLE cInFinFile AS CHARACTER NO-UNDO.

cInFinFile = "N:\test.xlsx".

/* create excel instance */
CREATE "Excel.Application" chExcel.
ASSIGN
    chExcel:Visible = TRUE
    chExcel:screenupdating = TRUE
    chExcel:displayAlerts = FALSE
    chWB = chExcel:Workbooks:OPEN(cInFinFile).
    
MESSAGE chExcel:Range("C5"):VALUE SKIP LENGTH(chExcel:Range("C5"):VALUE) VIEW-AS ALERT-BOX.
    
chWB:CLOSE.
RELEASE OBJECT chWB NO-ERROR.
chExcel:QUIT().
RELEASE OBJECT chExcel NO-ERROR.    

Value on Excel:

Value get in Progress:

我尝试调用Excel com-handle RUN来调用“LEN”函数来检查长度,但返回结果看起来不太好

excel openedge progress-4gl comobject
© www.soinside.com 2019 - 2024. All rights reserved.