Sample code for 30+ languages & platforms
PureBasic

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

PureBasic
IncludeFile "CkCsv.pb"

Procedure ChilkatExample()

    success.i = 0

    csv.i = CkCsv::ckCreate()
    If csv.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; Load the following CSV:

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

    ; Indicate that the 1st line contains column names.
    CkCsv::setCkHasColumnNames(csv, 1)
    success = CkCsv::ckLoadFile(csv,"qa_data/csv/insertColumnTest.csv")

    ; We can insert a column before the 1st column.
    CkCsv::ckInsertColumn(csv,0)

    Debug CkCsv::ckSaveToString(csv)

    ; The CSV now looks like this:

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

    ; Set the cells in column 0.

    col.i = 0
    CkCsv::ckSetColumnName(csv,col,"id")
    CkCsv::ckSetCell(csv,0,col,"100")
    CkCsv::ckSetCell(csv,1,col,"101")

    Debug CkCsv::ckSaveToString(csv)

    ; 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.i = CkCsv::ckGetIndex(csv,"Weight")
    Debug "Weight Column Index = " + Str(weightColumn)
    CkCsv::ckInsertColumn(csv,weightColumn)

    Debug CkCsv::ckSaveToString(csv)

    ; We now have:

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

    ; Set the cells in the new column:

    CkCsv::ckSetColumnName(csv,weightColumn,"Height")
    CkCsv::ckSetCell(csv,0,weightColumn,"6' 2" + Chr(34))
    CkCsv::ckSetCell(csv,1,weightColumn,"5' 7" + Chr(34))

    Debug CkCsv::ckSaveToString(csv)

    ; We now have:

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


    CkCsv::ckDispose(csv)


    ProcedureReturn
EndProcedure