Sample code for 30+ languages & platforms
Lua

CSV Set Cell by Index or Name

Demonstrates how to update the value of a CSV cell, or add new cells.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

-- 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

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

local csv = chilkat.Csv.new()

csv.has_column_names = true
local success = csv:load_from_string(sb:get_as_string())

-- Update the city "Gilbert" to "Tuscon".
csv:set_cell(3, 4, "Tuscon")

-- Add a new row.
local row_idx = csv.num_rows
csv:set_cell_by_name(row_idx, "permalink", "yelp")
csv:set_cell_by_name(row_idx, "company", "Yelp")
csv:set_cell_by_name(row_idx, "numEmps", "")
csv:set_cell_by_name(row_idx, "category", "web")
csv:set_cell_by_name(row_idx, "city", "San Francisco")
csv:set_cell_by_name(row_idx, "state", "CA")
csv:set_cell_by_name(row_idx, "fundedDate", "1-Jul-04")
csv:set_cell_by_name(row_idx, "raisedAmt", "1000000")
csv:set_cell_by_name(row_idx, "raisedCurrency", "USD")
csv:set_cell_by_name(row_idx, "round", "a")

-- Show the updated CSV:
print(csv:save_to_string())

-- 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