Sample code for 30+ languages & platforms
Swift

CSV Append New Row

Demonstrates how to append a new row to a CSV.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    // We have the following CSV...

    // permalink,company,numEmps,category,city,state,fundedDate,raisedAmt,raisedCurrency,round
    // lifelock,LifeLock,,web,Tempe,AZ,1-May-07,6850000,USD,b
    // mycityfaces,MyCityFaces,7,web,Scottsdale,AZ,1-Jan-08,50000,USD,seed
    // flypaper,Flypaper,,web,Phoenix,AZ,1-Feb-08,3000000,USD,a
    // infusionsoft,Infusionsoft,105,software,Gilbert,AZ,1-Oct-07,9000000,USD,a
    // gauto,gAuto,4,web,Scottsdale,AZ,1-Jan-08,250000,USD,seed

    var bCrlf: Bool = true
    let sb = CkoStringBuilder()!
    sb.appendLine(str: "permalink,company,numEmps,category,city,state,fundedDate,raisedAmt,raisedCurrency,round", crlf: bCrlf)
    sb.appendLine(str: "lifelock,LifeLock,,web,Tempe,AZ,1-May-07,6850000,USD,b", crlf: bCrlf)
    sb.appendLine(str: "mycityfaces,MyCityFaces,7,web,Scottsdale,AZ,1-Jan-08,50000,USD,seed", crlf: bCrlf)
    sb.appendLine(str: "flypaper,Flypaper,,web,Phoenix,AZ,1-Feb-08,3000000,USD,a", crlf: bCrlf)
    sb.appendLine(str: "infusionsoft,Infusionsoft,105,software,Gilbert,AZ,1-Oct-07,9000000,USD,a", crlf: bCrlf)
    sb.appendLine(str: "gauto,gAuto,4,web,Scottsdale,AZ,1-Jan-08,250000,USD,seed", crlf: bCrlf)

    let csv = CkoCsv()!

    csv.hasColumnNames = true
    success = csv.load(fromString: sb.getAsString())

    // Let's say we want to append the following row:
    // yelp,Yelp,,web,San Francisco,CA,1-Jul-04,1000000,USD,a

    // If we have the row as-is, we could do this:
    let csvTemp = CkoCsv()!
    success = csvTemp.load(fromString: "yelp,Yelp,,web,San Francisco,CA,1-Jul-04,1000000,USD,a")
    var numCols: Int = csvTemp.numColumns.intValue
    var i: Int = 0
    var row: Int = csv.numRows.intValue
    while i < numCols {
        csv.setCell(row: row, col: i, content: csvTemp.getCell(row: 0, col: i))
        i = i + 1
    }

    // Show the updated CSV:
    print("\(csv.saveToString()!)")

    // Output should be:
    // permalink,company,numEmps,category,city,state,fundedDate,raisedAmt,raisedCurrency,round
    // lifelock,LifeLock,,web,Tempe,AZ,1-May-07,6850000,USD,b
    // mycityfaces,MyCityFaces,7,web,Scottsdale,AZ,1-Jan-08,50000,USD,seed
    // flypaper,Flypaper,,web,Phoenix,AZ,1-Feb-08,3000000,USD,a
    // infusionsoft,Infusionsoft,105,software,Gilbert,AZ,1-Oct-07,9000000,USD,a
    // gauto,gAuto,4,web,Scottsdale,AZ,1-Jan-08,250000,USD,seed
    // yelp,Yelp,,web,San Francisco,CA,1-Jul-04,1000000,USD,a

}