2011-09-01 28 views
1

我有一個Google電子表格,我需要導出並且每個字段都包含在雙引號「字段」中,但此刻它不會執行此操作。谷歌文檔使用雙引號導出CSV

有沒有簡單的方法來實現這一點,而不訴諸手動編輯數百行?

最大

+0

CSV只需要值被包裹在引號當值包含逗號。爲什麼你需要用引號括起所有的值?你在編寫自己的CSV解析器嗎? – adamleerich

+0

紅寶石似乎不按規則在這裏玩。 – bmargulies

回答

2

我發現您可以通過使用Open Office來實現此目的。從他們你可以定義你自己的分隔符和周圍的角色。

以CSV格式保存/導出時,請選中定義我自己的字符的方框。

4

您可以從Excel中使用過宏觀appropiate像這樣使用:

Sub QuoteCommaExport() 

    ' Dimension all variables. 

    Dim DestFile As String 

    Dim FileNum As Integer 

    Dim ColumnCount As Integer 

    Dim RowCount As Integer 



    ' Prompt user for destination file name. 

    DestFile = InputBox("Enter the destination filename" & Chr(10) & "(with complete path):", "Quote-Comma Exporter") 



    ' Obtain next free file handle number. 

    FileNum = FreeFile() 



    ' Turn error checking off. 

    On Error Resume Next 



    ' Attempt to open destination file for output. 

    Open DestFile For Output As #FileNum 



    ' If an error occurs report it and end. 

    If Err <> 0 Then 

     MsgBox "Cannot open filename " & DestFile 

     End 

    End If 



    ' Turn error checking on. 

    On Error GoTo 0 



    ' Loop for each row in selection. 

    For RowCount = 1 To Selection.Rows.Count 



     ' Loop for each column in selection. 

     For ColumnCount = 1 To Selection.Columns.Count 



     ' Write current cell's text to file with quotation marks. 

     Print #FileNum, """" & Selection.Cells(RowCount, ColumnCount).Text & """"; 



     ' Check if cell is in last column. 

     If ColumnCount = Selection.Columns.Count Then 

      ' If so, then write a blank line. 

      Print #FileNum, 

     Else 

      ' Otherwise, write a comma. 

      Print #FileNum, ";"; 

     End If 

     ' Start next iteration of ColumnCount loop. 

     Next ColumnCount 

    ' Start next iteration of RowCount loop. 

    Next RowCount 



    ' Close destination file. 

    Close #FileNum 

End Sub