Perl
Chilkat2 Perl
CSV Set Column Name
Demonstrates how to set the name of a column in a CSV.Chilkat Perl Downloads
use strict;
use warnings;
use Chilkat2;
# 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
my $bCrlf = 1;
my $sb = Chilkat2::StringBuilder->new;
$sb->AppendLine('permalink,company,numEmps,category,city,state,fundedDate,raisedAmt,raisedCurrency,round', $bCrlf);
$sb->AppendLine('lifelock,LifeLock,,web,Tempe,AZ,1-May-07,6850000,USD,b', $bCrlf);
$sb->AppendLine('mycityfaces,MyCityFaces,7,web,Scottsdale,AZ,1-Jan-08,50000,USD,seed', $bCrlf);
$sb->AppendLine('flypaper,Flypaper,,web,Phoenix,AZ,1-Feb-08,3000000,USD,a', $bCrlf);
$sb->AppendLine('infusionsoft,Infusionsoft,105,software,Gilbert,AZ,1-Oct-07,9000000,USD,a', $bCrlf);
$sb->AppendLine('gauto,gAuto,4,web,Scottsdale,AZ,1-Jan-08,250000,USD,seed', $bCrlf);
my $csv = Chilkat2::Csv->new;
$csv->HasColumnNames(1);
my $success = $csv->LoadFromString($sb->GetAsString());
# Get each column name..
my $numCols = $csv->NumColumns;
my $i = 0;
while ($i < $numCols) {
print $csv->GetColumnName($i), "\n";
$i = $i + 1;
}
print "---\n";
# Change the "numEmps" column name to "employeeCount"
$success = $csv->SetColumnName(2, 'employeeCount');
$numCols = $csv->NumColumns;
$i = 0;
while ($i < $numCols) {
print $csv->GetColumnName($i), "\n";
$i = $i + 1;
}
# Use the updated column name...
print "---\n";
print $csv->GetCellByName(3, 'employeeCount'), "\n";
# Output should be:
# permalink
# company
# numEmps
# category
# city
# state
# fundedDate
# raisedAmt
# raisedCurrency
# round
# ---
# permalink
# company
# employeeCount
# category
# city
# state
# fundedDate
# raisedAmt
# raisedCurrency
# round
# ---
# 105