Excel inserisce solo virgolette attorno a determinati campi, come posso forzare Excel a salvare un file CSV con virgolette attorno a ogni colonna?
Excel inserisce solo virgolette attorno a determinati campi, come posso forzare Excel a salvare un file CSV con virgolette attorno a ogni colonna?
Risposte:
Se si apre il file XLS in LibreOffice o OpenOffice, quindi Salva con nome .... e si sceglie Text CSV, si genera un file CSV che include anche virgolette come delimitatori. Ad esempio: "Smith", "Pete", "Canada" "Jones", "Mary", "Inghilterra"
Seleziona la casella "Cita tutte le celle di testo":
Per citare anche i campi numerici, evidenzia l'intervallo di celle e modifica la formattazione della cella in "testo" prima di salvare.
Questa pagina ha anche la soluzione che arriva direttamente dalla bocca del cavallo:
http://support.microsoft.com/kb/291296/en-us
Se il collegamento peggiora, l'argomento da cercare è:
"Procedura per esportare un file di testo con delimitatori di virgole e virgolette in Excel" e / o "Q291296"
tl; dr: usa la loro macro
Ho trovato questa soluzione semplice:
"''"@"''"
(vedi dettagli sotto)La stringa che stai incollando è "''"@"''"
che è doppia virgoletta, virgoletta singola, virgoletta singola, virgoletta doppia, simbolo @, virgoletta doppia, virgoletta singola, virgoletta singola, virgoletta doppia.
Modificato per Excel 2010 dalle informazioni trovate qui .
\"@\"
Powershell sembra scaricare correttamente. quindi qualcosa del genere
cercare powershell.exe sul computer Windows se non si conosce powershell.
import-csv C:\Temp\Myfile.csv | export-csv C:\Temp\Myfile_New.csv -NoTypeInformation -Encoding UTF8
Spero che aiuti qualcuno.
import-csv Myfile.csv | export-csv Myfile_quoted.csv -NoTypeInformation -Encoding UTF8
. ricordati di usare virgolette singole attorno ai nomi di file con spazi o altri caratteri speciali.
Questo è stato il più semplice per me: ho importato il foglio di calcolo in Access 2010 e l'ho esportato da lì come file di testo delimitato. Mi ha dato le virgolette attorno ai miei campi. Richiede meno di un minuto per 42k righe ora che ho i passaggi verso il basso.
Ho trovato un altro lavoro in giro che non coinvolge la macro VBA, ma che richiede Notepad ++ o un editor di testo simile basato su macro.
Esporta il tuo file come testo separato da tabulazioni, quindi apri il file esportato in Notepad ++. Sostituisci tutte le istanze del carattere "tab" con il testo "," (ovvero letteralmente virgolette doppie, virgola, virgolette doppie) e quindi utilizza un'altra macro per aggiungere il prefisso e aggiungere un suffisso a ciascuna riga di testo con una virgoletta doppia.
Un po 'confuso ma l'ho trovato più veloce che far funzionare una macro VBA.
Evidenzia le celle che desideri aggiungere tra virgolette. Vai a Formato -> Celle -> Copia personalizzata / Incolla quanto segue nel campo Tipo: \ "@ \" Fai clic su "OK". Sii felice di non averlo fatto tutto a mano.
Da: http://www.lenashore.com/2012/04/how-to-add-quotes-to-your-cells-in-excel-automatically/
"''"@"''"
(vedi dettagli sotto)' '
(virgolette singole ripetute) con "
( virgolette doppie);
Se usi Notepad ++ per aggiungere virgolette all'inizio di ogni riga, apri semplicemente il file csv esportato, posiziona il cursore sulla prima riga, prima colonna, quindi fai clic sul menu Modifica / Editor colonne ... , nel campo " Testo da inserire ", inserisci " , quindi l'inizio di ogni riga avrà un preventivo, quindi puoi utilizzare l'espressione regolare per cercare / sostituire tutte le schede.
Per utenti Windows
Nota che questa non è la stessa citazione della tastiera che ha una varietà avanti e indietro.
Quindi, se usi CSV per CARICARE nella tabella Mysql, taglia e incolla il parametro ENCLOSED, altrimenti ti chiederai perché ricevi il messaggio#1083 - Field separator argument is not what is expected
Ho usato l'approccio seguente per prendere tre colonne in Excel e creare la stringa nella quarta colonna.
=CHAR(34)&A2&CHAR(34)&","&CHAR(34)&B2&CHAR(34)&","&CHAR(34)&C2&CHAR(34)&""
Il mio problema con l' "''"@"''"
approccio è che la seconda colonna dei miei dati era un numero che l' "''"@"''"
approccio non ha fatto nulla con i numeri. A volte la seconda colonna è vuota ma avevo bisogno di assicurarmi che fosse rappresentata nel file di testo finale.
Un altro modo se si dispone dell'accesso MS (I ver ver 2007) importare il file quindi esportarlo come file di testo. Quindi modificare .txt in .csv. Nota che tutti i campi numerici non avranno virgolette doppie, quindi se hai bisogno di virgolette doppie anche quando sei in Access, cambia il campo da un campo numerico a un campo di testo.
L'esportazione di stringhe separate da virgole e virgolette può essere eseguita solo con Excel 2016 e Blocco note, utilizzando una copia dei dati, una formula, un'esportazione, una modifica delle proprietà del file, una sostituzione in Blocco note, il salvataggio del file esportato e la pulizia. Ognuno è un semplice passo. In dettaglio:
Copia le colonne da esportare in un nuovo foglio intermedio per conservare l'originale e come backup, con il nuovo foglio da eliminare in seguito per lasciare il foglio di calcolo così com'era.
Inserisci i caratteri altrimenti non ricorrenti, pronuncia '#' o ';-)' ad ogni estremità di una stringa nella colonna, pronuncia A con la formula =concat("#",trim(A1),"#")
, inserendo la formula su tutte le righe di un'altra colonna.
Copia le nuove colonne su A ..., usando il metodo "123" in modo da non portare la formula.
Esporta il foglio come file CSV, per inserire le virgole tra i campi inclusi i numeri.
Modificare le proprietà file.csv in modo che possa essere aperto con Blocco note.
Utilizzare Blocco note per sostituire i caratteri arbitrari con "" ".
Mentre sembrerebbe ragionevole usare "come carattere arbitrario, deve essere messo in una cella diversa, dire '$ A $ 50', e quindi ciò che appare all'esportazione è '" ""', apparentemente un altro innesco scomodo.
Nel blocco note il file deve essere salvato, diventando un file * .txt da importare e l'intermedio * .csv eliminato.
Con la pulizia della missione foglio di calcolo extra compiuta.
Forse gli strumenti di esportazione di Access possono un giorno essere incorporati in Excel. Un approccio più generico tra quei programmi che usano taglia e incolla sarebbe quello di avere le opzioni incolla che includono una scelta di modi per interpretare la struttura di output e fornire delimitatori.
La risposta di Michael del 21 agosto 2014 è davvero utile. Tuttavia, ho dovuto eseguire uno o due passaggi aggiuntivi:
Questa è la mia ricetta Odio doverlo fare ma non avevo modo migliore. Nel mio caso, non ricevo virgolette in nessun campo. Avevo anche bisogno di usare la codifica UTF-8 e; invece delle schede, quindi questo è quello che ho finito di fare.
NOTA: a causa dell'ilegabilità di mettere virgolette doppie racchiuse tra virgolette singole e così via, ho usato volutamente la "formattazione della tastiera" per indicare sia i tasti che i caratteri e le stringhe letterali.
Ho riscontrato questo problema molte volte. Ecco la soluzione più semplice che ho trovato.
L'accesso ti consentirà di specificare il delimitatore di esportazione come una virgola e i campi di testo con virgolette. Nella procedura guidata di esportazione, è possibile specificare qualsiasi delimitatore o carattere attorno alle stringhe desiderate.
Potrebbe essere necessario creare una query di Access per disporre i campi in un ordine particolare o nascondere il campo ID automatico aggiunto da Access.
Inoltre ... una volta esportato in un CSV, NON aprirlo di nuovo in Excel. Se vuoi guardare i risultati, aprilo nel blocco note. Excel ha la tendenza a pasticciare con i dati di un csv .... Penso che fossero campi riempiti con zeri iniziali se ricordo correttamente.
Ecco come utilizzare l'app OpenOffice per prendere un foglio di calcolo Excel e creare un file di testo (csv) con virgolette attorno ad ogni campo di testo.
Apri il file Excel con OpenOffice, quindi segui questi passaggi:
File> Salva con nome
Fornisci un nuovo nome per il file che stai per creare
Per Tipo di file, selezionare "Test CSV (.csv)"
attiva la casella di controllo "Modifica impostazioni filtro"
fai clic su "Salva"
scegli "Mantieni formato corrente"
Il delimitatore di campo deve essere una virgola:,
Il delimitatore di testo deve contenere le virgolette: "
seleziona la casella "Cita tutte le celle di testo"
fai clic su "OK"
Questo ha funzionato per me!