Excel使用Progress 4GL导出为文本

时间:2013-10-15 23:34:48

标签: progress-4gl

我需要Excel Export的帮助。我正在尝试使用Progress 4GL将列导出为文本。我需要列中带有前导“0”的数字,excel会在打开时继续删除。

我尝试使用STRING函数在变量导出之前使变量成为String。那没起效。有没有其他方法可以导出前导0?

4 个答案:

答案 0 :(得分:1)

我假设您正在将文件保存为CSV格式,并且在Excel中打开文件时会丢失前导0。

输出字符串时,可以按如下方式将其括起来,以便excel将其作为字符串读取。

放置未格式化的'=''字符串(“00123”)'“'

答案 1 :(得分:0)

如果您直接写入Excel,可以在数字的开头加上一个'字符,然后Excel将其解释为使用文本格式化的数字。

你可以在这里看到它:

def var ch-excel      as com-handle no-undo.
def var ch-wrk        as com-handle no-undo.

create "Excel.Application" ch-excel no-error.
ch-excel:visible       = no no-error.
ch-excel:DisplayAlerts = no no-error.

ch-wrk = ch-excel:workbooks:add.

ch-excel:cells(1,1) = "'01".
ch-wrk:SaveAs("c:\temp\test.xlsx", 51, "", "", false, false, ) no-error. /* 51 = xlOpenXMLWorkbook */

ch-excel:DisplayAlerts = yes.
ch-excel:quit().
release object ch-wrk.
release object ch-excel.

由于我已经使用excel一段时间生成报告,我创建了一个基于temp-table定义生成excel的小型lib,我认为它可能有用,你可以在:https://github.com/rodolfoag/4gl-excel

答案 2 :(得分:0)

当您手动导入excel时,选择列为TEXT而不是GENERAL,那么前导零将不会消失

答案 3 :(得分:0)

您可以设置单元格的格式,如下所示:

h-excel:Range("A12")::numberformat = FILL("0",x).

其中x是您要插入的变量的长度。