Csv 从应用程序中写入CVS文件并没有将其设置为正确的格式-导致问题

Csv 从应用程序中写入CVS文件并没有将其设置为正确的格式-导致问题,csv,vb6,Csv,Vb6,因此,我在SQLSERVEr中有一个表,从中选择数据并尝试将其写入.CSV文件。一切看起来都很好,但出于某种原因,第一列数据的格式似乎有些奇怪,因为我无法将文本与文本对齐或向右对齐。当我点击其中一个对齐按钮时,列中的文本几乎没有移动。所有其他数据似乎都很好,我觉得第一列是唯一有问题的一列 下面是我的代码 Dim sSQL As String Dim cRS As ADODB.Recordset Dim T As Long Dim b As Long Dim strLine As Variant

因此,我在SQLSERVEr中有一个表,从中选择数据并尝试将其写入.CSV文件。一切看起来都很好,但出于某种原因,第一列数据的格式似乎有些奇怪,因为我无法将文本与文本对齐或向右对齐。当我点击其中一个对齐按钮时,列中的文本几乎没有移动。所有其他数据似乎都很好,我觉得第一列是唯一有问题的一列

下面是我的代码

Dim sSQL As String
Dim cRS As ADODB.Recordset
Dim T As Long
Dim b As Long
Dim strLine As Variant

sSQL = ""
sSQL = "X, Y, Z from tblA” 

Set cRS = New Recordset

cRS.Open sSQL, g_cn, adOpenStatic
If cRS.RecordCount > 0 Then
    cRS.MoveLast
    T = cRS.RecordCount
    cRS.MoveFirst
Else
    T = 0
End If

Open filenameCSV For Output As #1

For b = 1 To T
    strLine = ""
    strLine = cRS!X & ","
    strLine = strLine & cRS!Y & ","
    strLine = strLine & cRS!Z & ","

    Print #1, , strLine 
    cRS.MoveNext
Next

Close #1
cRS.Close
Set cRS = Nothing
就像我说的,这个代码是有效的。它将数据正确写入.CSV,但第一列(主要是X列)中的格式除外

我没有打印1,而是尝试了放置1,但这给了我一个错误,说文件代码不正确

这个.csv文件正在加载到一些财务软件中,我相信X列中的格式是导致问题的原因,基本上软件无法识别该列中的值

仅供参考..我简化了查询

有人有什么想法吗

编辑:

我试着从一个新文件运行它

在移动到下一个记录集之前,我在循环的末尾添加了VBCRLF

strLine = strLine & vbCrLf
    Put #1, , strLine
创建了.csv文件,但在第一列的每个单元格中都有一个奇怪的符号

EDIT2:用记事本打开++


您的数据中是否可能有引号、换行符或逗号,导致CSV损坏?@BobSki您可能从使用的任何源数据中获取某种不可打印的字符。在构建要输出的字符串时,您是否使用任何类型的CHR或ASC编码?你能用记事本++之类的东西打开CSV吗?它可以显示控制字符,看看那些框到底是什么?所以我把它改为“打开文件,输出为1”,然后在循环结束时,我打印了1,Strline只有一个逗号,之前我有两个逗号,正如上面所示,它似乎正确地创建了它now@BobSki对对于纯文本,您需要使用open进行输出和打印。这很奇怪,你得到了空值和…退格?我猜它是在把你的文本转换成某种二进制混乱。但它现在可以正常使用您的实际数据集了吗?@luke g是的,很好,现在我用notepad++打开了它,一切都很好。您的数据中可能有引号、换行符或逗号吗,导致CSV损坏?@BobSki可能是因为您从使用的任何源数据中获取了某种不可打印的字符。在构建要输出的字符串时,您是否使用任何类型的CHR或ASC编码?你能用记事本++之类的东西打开CSV吗?它可以显示控制字符,看看那些框到底是什么?所以我把它改为“打开文件,输出为1”,然后在循环结束时,我打印了1,Strline只有一个逗号,之前我有两个逗号,正如上面所示,它似乎正确地创建了它now@BobSki对对于纯文本,您需要使用open进行输出和打印。这很奇怪,你得到了空值和…退格?我猜它是在把你的文本转换成某种二进制混乱。但它现在可以正常使用您的实际数据集了吗?@luke g是的,现在很好,我用记事本++打开了它,一切都很好