Sample code for 30+ languages & platforms
Ruby

CSV Insert Column

See more CSV Examples

Insert a new column into an existing CSV.

Note: This example requires Chilkat v9.5.0.89 or greater because the InsertColumn method was added in v9.5.0.89.

Chilkat Ruby Downloads

Ruby
require 'chilkat'

success = false

csv = Chilkat::CkCsv.new()

# Load the following CSV:

#  Name;City;Weight
#  John;Chicago;180
#  Lisa;Denver;120

# Indicate that the 1st line contains column names.
csv.put_HasColumnNames(true)
success = csv.LoadFile("qa_data/csv/insertColumnTest.csv")

# We can insert a column before the 1st column.
csv.InsertColumn(0)

print csv.saveToString() + "\n";

# The CSV now looks like this:

#  ;Name;City;Weight
#  ;John;Chicago;180
#  ;Lisa;Denver;120

# Set the cells in column 0.

col = 0
csv.SetColumnName(col,"id")
csv.SetCell(0,col,"100")
csv.SetCell(1,col,"101")

print csv.saveToString() + "\n";

# We now have:

#  id;Name;City;Weight
#  100;John;Chicago;180
#  101;Lisa;Denver;120

# Insert a new column between City and Weight
# In other words, add a new column before the Weight column.
weightColumn = csv.GetIndex("Weight")
print "Weight Column Index = " + weightColumn.to_s() + "\n";
csv.InsertColumn(weightColumn)

print csv.saveToString() + "\n";

# We now have:

#  id;Name;City;;Weight
#  100;John;Chicago;;180
#  101;Lisa;Denver;;120

# Set the cells in the new column:

csv.SetColumnName(weightColumn,"Height")
csv.SetCell(0,weightColumn,"6' 2\"")
csv.SetCell(1,weightColumn,"5' 7\"")

print csv.saveToString() + "\n";

# We now have:

#  id;Name;City;Height;Weight
#  100;John;Chicago;"6' 2""";180
#  101;Lisa;Denver;"5' 7""";120