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.

  • Caratteri speciali non visualizzati correttamente in Excel utilizzando script Python
  • Rimuovere il carattere speciale da Summernote quando esport con PHPExcel
  • Verifica se una string di text contiene caratteri speciali in excel
  • Come visualizzare correttamente i caratteri speciali nel file excel 2003
  • Gestione di caratteri speciali durante l'importzione di Excel in MySQL mediante perl
  • Aggiunta di un return a row / (carrello?) In Excel utilizzando PHP
  • python-cant leggere da tutte le righe da un csv
  • File CSV SSIS con virgole
  • Come individuare i dati di text nelle celle e memorizzare la loro posizione con VBA
  • Come faccio a creare un CSV in modo che una cifra numbersca venga visualizzata come una string nel foglio di calcolo?
  • Vorrei creare un download di dati CSV. Invece, le intestazioni CSV stanno printingndo alla pagina
  • Convertire xlsx in csv nella row di command di linux
  • 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.