我需要Excel Export的帮助。我正在尝试使用Progress 4GL将列导出为文本。我需要列中带有前导“0”的数字,excel会在打开时继续删除。
我尝试使用STRING函数在变量导出之前使变量成为String。那没起效。有没有其他方法可以导出前导0?
答案 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
是您要插入的变量的长度。