如何将foxpro游标导出到CSV文件?

时间:2012-06-28 15:53:13

标签: database export-to-excel export-to-csv visual-foxpro

在visual foxpro中,当我使用以下语句将该游标的内容导出到csv文件时,我有一个sql查询结果的游标:

 COPY TO "c:\test.csv" type DELIMITED

所有数据都搞砸了,我没有指定任何分隔符所以基本上foxpro采用默认值,即该游标中的每一列。当我对xls文件运行相同的命令,然后将其转换为csv文件时,它会鞠躬......它的效果非常好:

     COPY TO "c:\test.xls" type XL5

任何人都有这样的问题,任何人仍然使用foxpro并做这样的事情?

2 个答案:

答案 0 :(得分:4)

您是否尝试过在COPY TO命令中使用TYPE CSV?

答案 1 :(得分:1)

我个人从不喜欢内置的DBF到CSV转换器。他们似乎总是做我不想让他们做的事情。所以我只写了自己的。这里有一些代码可以帮助您入门。

LOCAL lnFields

SELECT DBF
lnFieldCount = AFIELDS(laFields)
lnHandle = FOPEN("filename.csv", 1)
ASSERT lnHandle > 0 MESSAGE "Unable to create CSV file"

SCAN
    lcRow = ""
    FOR lnFields = 1 TO lnFieldCount
    IF INLIST(laFields[lnFields,2], 'C', 'M')
            lcRow = lcRow + IIF(EMPTY(lcRow), "", ",") + '"' + ;
                            STRTRAN(EVALUATE(laFields[lnFields,1]),'"', '""') + '"'
        ELSE
            lcRow = lcRow + IIF(EMPTY(lcRow), "", ",") + ;
                            TRANSFORM(EVALUATE(laFields[lnFields,1]))
        ENDIF
    ENDFOR

    FWRITE(lnHandle, lcRow)
ENDSCAN
FCLOSE(lnHandle)