我需要有关 Excel 导出的帮助。我正在尝试使用 Progress 4GL 将列导出为文本。我需要列中具有前导“0”的数字,excel 在打开时会不断删除。
我尝试使用 STRING 函数使变量在导出之前成为字符串。那没起效。有没有其他方法可以用前导 0 导出?
我需要有关 Excel 导出的帮助。我正在尝试使用 Progress 4GL 将列导出为文本。我需要列中具有前导“0”的数字,excel 在打开时会不断删除。
我尝试使用 STRING 函数使变量在导出之前成为字符串。那没起效。有没有其他方法可以用前导 0 导出?
我假设您正在将正在进行的文件保存为 CSV,并且当在 Excel 中打开文件时,它会丢失前导 0。
输出字符串时,您可以按如下方式将其括起来,以便 excel 将其作为字符串读取。
把未格式化的 '="' string("00123") '"'
如果您直接写入 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 生成报告已经有一段时间了,所以我创建了一个小库,可以根据临时表定义生成 excel,我认为它可能会有所帮助,您可以在以下位置进行检查:https: //github.com/rodolfoag/4gl-excel
当您手动导入 excel 时,选择列为 TEXT 而不是 GENERAL,那么前导零不会消失
您可以设置单元格的格式,如下所示:
h-excel:Range("A12")::numberformat = FILL("0",x).
x
您要插入的变量的长度在哪里。