Tcl
Tcl
CSV Set Cell by Index or Name
Demonstrates how to update the value of a CSV cell, or add new cells.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# 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
set bCrlf 1
set sb [new_CkStringBuilder]
CkStringBuilder_AppendLine $sb "permalink,company,numEmps,category,city,state,fundedDate,raisedAmt,raisedCurrency,round" $bCrlf
CkStringBuilder_AppendLine $sb "lifelock,LifeLock,,web,Tempe,AZ,1-May-07,6850000,USD,b" $bCrlf
CkStringBuilder_AppendLine $sb "mycityfaces,MyCityFaces,7,web,Scottsdale,AZ,1-Jan-08,50000,USD,seed" $bCrlf
CkStringBuilder_AppendLine $sb "flypaper,Flypaper,,web,Phoenix,AZ,1-Feb-08,3000000,USD,a" $bCrlf
CkStringBuilder_AppendLine $sb "infusionsoft,Infusionsoft,105,software,Gilbert,AZ,1-Oct-07,9000000,USD,a" $bCrlf
CkStringBuilder_AppendLine $sb "gauto,gAuto,4,web,Scottsdale,AZ,1-Jan-08,250000,USD,seed" $bCrlf
set csv [new_CkCsv]
CkCsv_put_HasColumnNames $csv 1
set success [CkCsv_LoadFromString $csv [CkStringBuilder_getAsString $sb]]
# Update the city "Gilbert" to "Tuscon".
CkCsv_SetCell $csv 3 4 "Tuscon"
# Add a new row.
set row_idx [CkCsv_get_NumRows $csv]
CkCsv_SetCellByName $csv $row_idx "permalink" "yelp"
CkCsv_SetCellByName $csv $row_idx "company" "Yelp"
CkCsv_SetCellByName $csv $row_idx "numEmps" ""
CkCsv_SetCellByName $csv $row_idx "category" "web"
CkCsv_SetCellByName $csv $row_idx "city" "San Francisco"
CkCsv_SetCellByName $csv $row_idx "state" "CA"
CkCsv_SetCellByName $csv $row_idx "fundedDate" "1-Jul-04"
CkCsv_SetCellByName $csv $row_idx "raisedAmt" "1000000"
CkCsv_SetCellByName $csv $row_idx "raisedCurrency" "USD"
CkCsv_SetCellByName $csv $row_idx "round" "a"
# Show the updated CSV:
puts [CkCsv_saveToString $csv]
# 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,Tuscon,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
delete_CkStringBuilder $sb
delete_CkCsv $csv