Come esportare le colonne selezionate in un file CSV


24

Voglio esportare un numero specifico di colonne da Excel in file .csv. Ho circa 10 colonne come lname, fname, phone, address, emaile così via. Cosa devo fare per esportare solo alcune colonne come lname, emaile così via?

Risposte:


23

Basta fare in modo semplice: -

  1. Applica la concatenazione per 10 colonne

    =CONCATENATE(A1,",",B1,",",C1,",",D1,",",E1,",",F1,",",G1,",",H1,",",I1,",",J1)
    
  2. Trascina verso il basso l'elenco alla fine dell'ultima riga

  3. Copia la colonna dei risultati
  4. Incollalo nel blocco note
  5. Salvalo come .csvformato di file

CONCATENATE ha funzionato davvero per me. Grazie mille.
Nedim Šabić,

3
Semplice ... a meno che non ci sia una doppia citazione in nessuna delle tue colonne ...
vescovo,

Non devi separare gli elementi concatenati con un punto e virgola? = CONCATENA (A1; " "; B1;", "; C1;", "; D1;", "; E1;", "; F1;", "; G1;", "; H1;"," ; I1; ","; J1)
mabho,

9

Seleziona la prima colonna che desideri. Quindi, tenendo premuto <Ctrl>, seleziona le colonne rimanenti che desideri. Copia la selezione e incollala in una nuova cartella di lavoro. Salvare la nuova cartella di lavoro come file .csv.

Se lo farai frequentemente, registra una macro dei tuoi passi. Ecco la macro registrata dal mio test. Nel mio esempio, la colonna A è Nome e la colonna E è Email. Ho anche modificato la macro in modo che il nome file SaveAs includa la data corrente.


Stavo per mostrare una macro di esempio, ma per qualsiasi motivo, errori di superutente quando faccio clic su Salva modifiche. Ci riproverò più tardi.


4

Ecco una soluzione a bassa tecnologia:

  1. Salvare una copia dell'intero foglio come .csv.
  2. Mentre sei ancora aperto in Excel, elimina le colonne che non desideri.
  3. Salvare.

3

Ho scritto la mia soluzione VBA su questo come componente aggiuntivo; è disponibile qui su GitHub.

Vista di esempio (fare clic sull'immagine per ingrandirla):

Schermata del modulo dello strumento

I passaggi per l'uso sono:

  • Installa il componente aggiuntivo
  • Carica il modulo ( Ctrl+ Shift+ Cè attualmente assegnato per mostrare il modulo)
  • Evidenzia l'intervallo che desideri esportare
  • Seleziona la cartella di esportazione
  • Immettere il nome file, il formato numerico e il separatore desiderati
  • Scegli se aggiungere o sovrascrivere
  • Fai clic su "Esporta"

Il modulo non è modale, quindi puoi lasciarlo aperto mentre selezioni intervalli diversi o navighi da foglio a foglio o da cartella di lavoro a cartella di lavoro. Da notare, il simbolo "at" ( @) funge da rappresentazione del formato numerico "Generale" di Excel per operazioni di output come questa.

Contenuti dell'esempio C:\test.csvprecedente:

13,14,15
14,15,16
15,16,17

2
Sub ExportSelectionAsCSV()
    ' MS Excel 2007
    ' Visual Basic for Applications
    '
    ' Copies the selected rows & columns
    ' to a new Excel Workbook. Saves the new 
    ' Workbook as Comma Separated Value (text) file.
    '
    ' The active workbook (the 'invoking' workbook - the 
    ' one that is active when this subroutine is called) 
    ' is unaffected.
    '
    ' Before returning from the subroutine, the invoking workbook
    ' is "set back to" (restored as) the active workbook.
    '
    ' Note: target filename is hard coded (code is simpler that way)

    ' Suspends screen updating (until ready to return)
    ' Warning: ScreenUpdating MUST be re-enabled before
    ' returning from this subroutine.
    '
    ' Note: Step through this subroutine line-by-line to prove
    ' to yourself that it is performing as promised.
    ' (Please step through the code at least once - use F8)
    Application.ScreenUpdating = False

    ' Gets the name of *this (the invoking) workbook
    ' so *this workbook can again be set active
    ' at the end of this subroutine.
    Dim CurrentFileName As String
    CurrentFileName = ActiveWorkbook.Name
    Debug.Print "Active File: " + CurrentFileName

    ' Copies the selected cells (to the clipboard).
    ' Precondition: Cells must be selected before 
    ' calling this subroutine.
    Selection.Copy

    ' Instantiates a (new) object instance of type Excel workbook.
    ' Side-effect: The new workbook instance is now
    ' the 'active' workbook. 
    Workbooks.Add Template:="Workbook"

    ' Selects the first cell of the 
    ' first worksheet of the new workbook.
    Range("A1").Select

    ' Pastes the clipboard contents to the new worksheet
    ' (of the new workbook)
    ActiveSheet.Paste

    ' Writes the new (active) Excel workbook to file.
    ' The format is Comma Separated Value
    ActiveWorkbook.SaveAs Filename:= _
    "C:\temp\data.csv" _
    , FileFormat:=xlCSV, _
    CreateBackup:=False

    ' Gets the filename of the new (active) workbook
    ' so the name can be logged.
    Dim NewFileName As String
    NewFileName = ActiveWorkbook.Name
    Debug.Print "Active File: " + NewFileName

    ' Closes the new CSV file
    Application.DisplayAlerts = False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True

    ' Clears the clipboard contents.
    Application.CutCopyMode = False

    ' Restores the invoking workbook as the active
    ' Excel workbook. 
    Workbooks(CurrentFileName).Activate
    Range("A1").Select

    ' Re-Enables Excel screen display.
    Application.ScreenUpdating = True
End Sub


1

Se apri il file in Ron's Editor puoi nascondere le colonne che non desideri, quindi esportare la "vista" risultante come file Excel o in qualsiasi altro formato. Meglio ancora, puoi salvare la vista per un uso futuro. Molto veloce, molto semplice.


1

Ancora un'altra soluzione:

  1. Seleziona le celle che desideri esportare
  2. Avvolgi una tabella attorno alle celle (ad esempio, premi Control + T su Windows)
  3. Esegui la macro ExportTable

Salva la tabella sul foglio attivo come nuovo CSV (aprendo una nuova cartella di lavoro e salvando da lì, usando il nome della tabella come nome del file).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.