2016-07-29 2 views
0

Les exigences sont:Comment configurer Super CSV pour citer toutes les valeurs sauf les noms de colonnes?

  • Chaque valeur dans les enregistrements doit être citée.
  • Les noms de colonne doivent être séparés par une virgule et un espace (,).

Par exemple

Name, Age, Location 
"A","154","California" 
"B","2","New York" 

Comment puis-je créer cette préférence de SuperCSV pour l'écriture?

+0

"Mais ne citer les noms de colonnes" et "les noms de colonnes doivent séparés par une virgule et de l'espace (,)" semble être incompatible – davidxxx

+1

Ne pas citer les noms de colonne signifie '' '[X]" Nom "," Age "," Lieu "' '', Les noms de colonnes doivent être séparés par des virgules et des espaces [✓] 'Name, Age, Emplacement ». Sont-ils incompatibles? – Nilesh

Répondre

1

Utilisation suivant le mode de devis personnalisé:

public class AllExceptHeaderQuoteMode implements QuoteMode { 

    @Override 
    public boolean quotesRequired(String csvColumn, CsvContext context, CsvPreference preference) { 
     if (1 == context.getLineNumber()) { 
      /* 
      * Case whene column names are written 
      */ 
      return false; 
     } else { 
      return true; 
     } 
    } 
} 

en utilisant le mode de devis personnalisé:

CsvPreference preference = new CsvPreference.Builder(CsvPreference.STANDARD_PREFERENCE).useQuoteMode(new AllExceptHeaderQuoteMode()).build());