2014-05-16 36 views
0

我有一個程序編寫,創建三個單獨的csv文件。一個直接在Excel中打開,另外兩個需要導入文本文件。
的方法和程序是相同的(除了寫入到CSV數據。)創建csv - 一些打開,一些需要導入到Excel

作品

Dim fso, MyFile 'tests writing from different Lists 
    fso = CreateObject("scripting.filesystemobject") 

    MyFile = fso.createtextfile(OutPutfilePath, True) 

    MyFile.WriteLine("Entry Key Number,Item Number,Part Number,Description,Part Sheet,Parent Level") 
    For Each ENTRY_ As LDF_Test_1.ENTRY_ARRAY In ENTRY_ENTRY 

     MyFile.writeline(ENTRY_.ENTRY_KEY & "," & ENTRY_.Entry_ItemNo & "," & ENTRY_.Entry_PartNo & ",""" & ENTRY_.Entry_Descrip & """," & ENTRY_.Entry_LIST_FileName & "," & ENTRY_.Entry_ParentNo) 

    Next 
    MyFile.close() 

不工作

Dim fso, MyFile 'tests writing from different Lists 
    fso = CreateObject("scripting.filesystemobject") 

    MyFile = fso.createtextfile(OutPutfilePath, True) 

    MyFile.WriteLine("LDF File Name,LDF Ref,LDF Description,Folder Name,Pic File Name,Picture Title ,Destination Folder,Serial Number,Converted,end") 
    For Each Pix_ As LDF_Test_1.PIX_ARRAY In PIX_PIX 

     MyFile.writeline(Pix_.Pix_List_FileName & ",""" & Pix_.Pix_List_Ref & """,""" & Pix_.Pix_List_Descrip & """,""" & path_ & """,""" & Pix_.Pix_FileName & """,""" & Pix_.Pix_Title & """,""" & OutPutfilePath & """,""" & Serial_Num) 

    Next 
    MyFile.close() 
    MsgBox("File Created") 

任何意見或想法?

+0

和你使用'.csv'擴展,對不對? – OneFineDay

+0

問題可能是引號。 – OneFineDay

+1

使用來自'System.IO'命名空間的StreamWriter對象進行研究。如果它位於'.Net'框架中,則不需要'FileSystemObject'。 – OneFineDay

回答

0

嵌入式行情是一個痛苦,可能是「不工作」的來源。 NET提供了一個很好的替代方法:

MyFile.writeline(String.Format("{0}, {1}, {2}, ...etc", 
    Pix_.Pix_List_FileName, Pix_.Pix_List_Ref, 
    Pix_.Pix_List_Descrip, Pix_.Pix_FileName, 
    etc) 

確保您擁有與數據元素相同數量的持有者。

注意:代碼看起來更像VBA而不是VB.NET,但那就是你如何標記它。

0

嘗試使用StreamWriter對象從System.IO命名空間:

Using myFile As New IO.StreamWriter(OutPutfilePath) 
myFile.WriteLine("LDF File Name,LDF Ref, 
        LDF Description,Folder Name, 
        Pic File Name,Picture Title ,Destination Folder, 
        Serial Number,Converted,end") 
For Each ENTRY_ As LDF_Test_1.ENTRY_ARRAY In ENTRY_ENTRY 
    myFile.WriteLine(String.Format("{0},{1},{2},{3},{4},{5}", 
        ENTRY_.ENTRY_KEY,ENTRY_.Entry_ItemNo, 
        ENTRY_.Entry_PartNo, ENTRY_.Entry_Descrip, 
        ENTRY_.Entry_LIST_FileName, ENTRY_.Entry_ParentNo) 
Next 
End Using