Come devo sfuggire le virgole ei segni di voce nei file CSV in modo che funzionino in Excel?

Sto generando un file CSV (delimitato da virgole piuttosto che da tabs). I miei utenti probabilmente apriranno il file CSV in Excel facendo doppio clic su di esso. I miei dati potrebbero contenere segni di virgola e segni di voce, per cui sto sfuggendo quelli come segue.

Reference, Title, Description 1, "My little title", "My description, which may contain ""speech marks"" and commas." 2, "My other little title", "My other description, which may also contain ""speech marks"" and commas." 

Per quanto so che è sempre stato il modo per farlo. Ecco il mio errore: quando apro questo file in Excel 2010 la mia fuga non viene rispettata. I segni di voce appaiono sul foglio e la virgola causa nuove colonne.

  • Verifica se una string di text contiene caratteri speciali in excel
  • Gestione di caratteri speciali durante l'importzione di Excel in MySQL mediante perl
  • Caratteri speciali non visualizzati correttamente in Excel utilizzando script Python
  • Aggiunta di un return a row / (carrello?) In Excel utilizzando PHP
  • Rimuovere il carattere speciale da Summernote quando esport con PHPExcel
  • Come visualizzare correttamente i caratteri speciali nel file excel 2003
  • Formatta il text per adattarsi alle colonne in Excel
  • Ignorare il text nel foglio di lavoro quando si import a python
  • Usa Python per cercare e tirare dati da Excel
  • Come generare file CSV per Excel, come avere una nuova row all'interno di un valore
  • csvimport cakedc non recupera alcun record dal file csv
  • Modifica un csv per visualizzare 5 colonne in un ordine specifico durante l'applicazione di un formato nel field datetime
  • 4 Solutions collect form web for “Come devo sfuggire le virgole ei segni di voce nei file CSV in modo che funzionino in Excel?”

    Alla fine abbiamo trovato la risposta a questo.

    Excel rispetta solo la fuga di virgole e segni di voce se il valore della colonna NON è preceduto da uno spazio. Così generando il file senza spazi come questo …

     Reference,Title,Description 1,"My little title","My description, which may contain ""speech marks"" and commas." 2,"My other little title","My other description, which may also contain ""speech marks"" and commas." 

    … risolto il problema. Spero che questo aiuti qualcuno!

    Di seguito sono le regole se credi che sia random. Una function di utilità può essere creata sulla base di queste regole.

    1. Se il valore contiene una virgola, una nuova row o una double quote, allora il valore String dovrebbe essere restituito racchiuso in virgolette doppie.

    2. Qualsiasi carattere di quote doppio nel valore deve essere sfuggito con un'altra double quota.

    3. Se il valore non contiene una virgola, una nuova row o una double quote, il valore String dovrebbe essere restituito invariato.

    Secondo le istruzioni di Yashu, ho scritto la seguente function (è PL / codice SQL, ma dovrebbe essere facilmente adattabile a qualsiasi altra lingua).

     FUNCTION field(str IN VARCHAR2) RETURN VARCHAR2 IS C_NEWLINE CONSTANT CHAR(1) := ' '; -- newline is intentional v_aux VARCHAR2(32000); v_has_double_quotes BOOLEAN; v_has_comma BOOLEAN; v_has_newline BOOLEAN; BEGIN v_has_double_quotes := instr(str, '"') > 0; v_has_comma := instr(str,',') > 0; v_has_newline := instr(str, C_NEWLINE) > 0; IF v_has_double_quotes OR v_has_comma OR v_has_newline THEN IF v_has_double_quotes THEN v_aux := replace(str,'"','""'); ELSE v_aux := str; END IF; return '"'||v_aux||'"'; ELSE return str; END IF; END; 

    Anche dopo le doppie citazioni, ho avuto questo problema per alcuni giorni.

    Delimitatore del pipe sostituito con Comma, poi le cose funzionano bene.

    Microsoft Office Excel Spreadsheet è il miglior software di Office, Excel VBA e formule Excel rendono il foglio di calcolo più veloce.