Sample code for 30+ languages & platforms
Dart

CSV Set Cell by Index or Name

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

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // 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

  final bCrlf = true;
  final sb = CkStringBuilder();
  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);

  final csv = CkCsv();

  csv.hasColumnNames = true;
  csv.loadFromString(sb.getAsString());

  // Update the city "Gilbert" to "Tuscon".
  csv.setCell(3, 4, 'Tuscon');

  // Add a new row.
  final rowIdx = csv.numRows;
  csv.setCellByName(rowIdx, 'permalink', 'yelp');
  csv.setCellByName(rowIdx, 'company', 'Yelp');
  csv.setCellByName(rowIdx, 'numEmps', '');
  csv.setCellByName(rowIdx, 'category', 'web');
  csv.setCellByName(rowIdx, 'city', 'San Francisco');
  csv.setCellByName(rowIdx, 'state', 'CA');
  csv.setCellByName(rowIdx, 'fundedDate', '1-Jul-04');
  csv.setCellByName(rowIdx, 'raisedAmt', '1000000');
  csv.setCellByName(rowIdx, 'raisedCurrency', 'USD');
  csv.setCellByName(rowIdx, 'round', 'a');

  // Show the updated CSV:
  print(csv.saveToString());

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