Unire più file CSV in un unico file Excel (fogli separati)

2026-07-08 06:55:50 jie zou
AI Summarize:
ChatGPT
ChatGPT
Claude
Grok
Perplexity
Quick
Quick
Concise overview
Highlights
Key takeaways
Detailed
Structured explanation
Brief
One sentence summary
Summarize |

Unire più file CSV in un'unica cartella di lavoro Excel

Quando si lavora con report esportati da sistemi diversi, è comune ritrovarsi con decine di file CSV. Ad esempio, ogni reparto, negozio o mese può generare il proprio report CSV. Sebbene ciò renda semplice la raccolta dei dati, gestire un gran numero di file separati diventa rapidamente scomodo.

Una soluzione pratica consiste nel combinare tutti i file CSV in un'unica cartella di lavoro Excel, mantenendo ogni CSV come foglio di lavoro separato. Questo preserva la struttura originale del file, facilita la navigazione e consente di condividere un'unica cartella di lavoro invece di più file individuali.

In questo articolo, presenteremo tre metodi pratici: da un semplice approccio manuale all'automazione di Excel con VBA fino a una soluzione Python completamente programmabile.

Metodi trattati:

Metodo 1. Copiare e incollare i file CSV in fogli di lavoro separati

Se hai solo pochi file CSV da unire, la soluzione più semplice è copiare manualmente i loro contenuti in fogli di lavoro diversi.

Un dettaglio importante è che dovresti aprire ogni file CSV con Microsoft Excel invece di un editor di testo come il Blocco note. Quando un CSV viene aperto in Excel, le sue righe e colonne vengono analizzate correttamente in base al delimitatore. Se copi il testo direttamente dal Blocco note, Excel potrebbe incollare tutto in un'unica colonna invece di separare automaticamente i valori.

Copiare e incollare i file CSV in fogli di lavoro separati

Passaggi

  1. Apri Microsoft Excel e crea una nuova cartella di lavoro.
  2. Apri il primo file CSV utilizzando Excel.
  3. Seleziona tutti i dati (Ctrl + A) e copiali (Ctrl + C).
  4. Torna alla nuova cartella di lavoro e incolla i dati nel primo foglio di lavoro.
  5. Rinomina il foglio di lavoro se necessario.
  6. Ripeti il processo per ogni file CSV rimanente, creando un nuovo foglio di lavoro ogni volta.
  7. Salva la cartella di lavoro come file .xlsx.

Pro

  • Nessuna programmazione richiesta.
  • Funziona in ogni installazione di Excel.
  • Preserva un CSV per foglio di lavoro.
  • Ideale per attività occasionali che coinvolgono solo pochi file.

Contro

  • Richiede molto tempo quando si elaborano molti file.
  • Interamente manuale.
  • Facile commettere errori quando si gestiscono decine di file CSV.

Metodo 2. Utilizzare una macro VBA per importare più file CSV

Se esegui spesso questa attività in Excel, una macro VBA può automatizzare l'intero processo. La macro scansiona una cartella, apre ogni file CSV, copia il suo foglio di lavoro nella cartella di lavoro corrente e assegna al foglio di lavoro il nome del file CSV.

Combinare più file CSV in Excel utilizzando una macro VBA

Passaggio 1. Creare una cartella di lavoro vuota

Apri Excel e crea una nuova cartella di lavoro. Questa diventerà la cartella di lavoro di destinazione che memorizzerà tutti i fogli di lavoro importati.

Passaggio 2. Aprire l'editor VBA

Premi Alt + F11 per aprire l'editor di Visual Basic.

Scegli Inserisci > Modulo, quindi incolla il seguente codice nel nuovo modulo.

Sub MergeCSVFilesToSheets()

    Dim folderPath As String
    Dim fileName As String
    Dim wbCSV As Workbook
    Dim ws As Worksheet
    Dim targetWb As Workbook
    Dim sheetName As String

    Set targetWb = ThisWorkbook

    folderPath = InputBox("Inserisci il percorso della cartella contenente i file CSV:")

    If Right(folderPath, 1) <> "\" Then
        folderPath = folderPath & "\"
    End If

    fileName = Dir(folderPath & "*.csv")

    Application.ScreenUpdating = False

    Do While fileName <> ""

        Workbooks.Open folderPath & fileName
        Set wbCSV = ActiveWorkbook

        sheetName = Left(fileName, InStrRev(fileName, ".") - 1)

        wbCSV.Worksheets(1).Copy After:=targetWb.Sheets(targetWb.Sheets.Count)
        Set ws = targetWb.Sheets(targetWb.Sheets.Count)

        On Error Resume Next
        ws.Name = Left(sheetName, 31)
        On Error GoTo 0

        wbCSV.Close SaveChanges:=False

        fileName = Dir
    Loop

    Application.ScreenUpdating = True

    MsgBox "I file CSV sono stati uniti correttamente."

End Sub

Passaggio 3. Eseguire la macro

Premi F5, inserisci la cartella contenente i tuoi file CSV e la macro importerà automaticamente ogni CSV nel proprio foglio di lavoro.

Pro

  • Molto più veloce della copia manuale.
  • Viene eseguita interamente all'interno di Microsoft Excel.
  • Crea automaticamente un foglio di lavoro per ogni file CSV.
  • Adatto agli utenti che lavorano regolarmente con Excel.

Contro

  • Richiede cartelle di lavoro con attivazione macro.
  • Gli utenti devono abilitare le macro VBA.
  • Meno adatto per l'automazione non presidiata o lato server.

Metodo 3. Unire più file CSV in Python utilizzando Spire.XLS

Per flussi di lavoro ricorrenti, processi pianificati o applicazioni aziendali, l'automazione programmatica è spesso la soluzione più efficiente.

Molti sviluppatori pensano immediatamente a Pandas per l'elaborazione di CSV. Pandas è un'ottima libreria per leggere, analizzare e trasformare dati tabulari. Tuttavia, il suo obiettivo principale è l'analisi dei dati piuttosto che la generazione di documenti.

Se il tuo flusso di lavoro va oltre la semplice importazione di file CSV (ad esempio, formattazione di fogli di lavoro, applicazione di stili, inserimento di grafici, protezione di cartelle di lavoro o esportazione della cartella di lavoro finale in PDF), una libreria di fogli di calcolo come Free Spire.XLS for Python fornisce una soluzione più completa.

Per prima cosa, installa la libreria:

pip install Spire.XLS

Quindi utilizza il seguente codice per unire ogni file CSV in una cartella in un'unica cartella di lavoro Excel, con ogni CSV che diventa un foglio di lavoro separato.

import os
from spire.xls import Workbook, WorksheetCopyType, FileFormat

input_folder = "input"
output_folder = "output"

# Crea la cartella di lavoro di destinazione
merged_workbook = Workbook()
merged_workbook.Worksheets.Clear()

# Elabora ogni file CSV
for csv_file in os.listdir(input_folder):
    if csv_file.endswith(".csv"):

        input_path = os.path.join(input_folder, csv_file)

        workbook = Workbook()
        workbook.LoadFromFile(input_path, ",", 1, 1)

        sheet = workbook.Worksheets[0]
        merged_workbook.Worksheets.AddCopy(
            sheet,
            WorksheetCopyType.CopyAll
        )

merged_workbook.SaveToFile(
    os.path.join(output_folder, "Merged.xlsx"),
    FileFormat.Version2013
)

Output:

Unire più file CSV in un'unica cartella di lavoro Excel utilizzando Python

Rispetto ai metodi manuali o VBA, questo approccio è molto più facile da integrare in flussi di lavoro automatizzati. Dopo aver generato la cartella di lavoro, puoi continuare a elaborarla con Spire.XLS, ad esempio:

  • Applicare caratteri, colori, bordi e formati numerici.
  • Bloccare i riquadri o regolare automaticamente la larghezza delle colonne.
  • Creare grafici e tabelle pivot.
  • Proteggere fogli di lavoro o la cartella di lavoro.
  • Esportare la cartella di lavoro completata in PDF o altri formati.

Queste funzionalità la rendono adatta non solo per l'unione di CSV, ma anche per pipeline di generazione di report end-to-end.

Confronto dei tre metodi

Metodo Programmazione richiesta Elaborazione batch Ideale per
Copia e incolla No Limitata Attività una tantum con pochi file CSV
Macro VBA VBA di base Utenti Excel che importano regolarmente file CSV
Python + Free Spire.XLS Python Eccellente Flussi di lavoro automatizzati, applicazioni aziendali ed elaborazione batch

Conclusione

Il metodo migliore dipende da quanto spesso devi eseguire l'attività.

Se devi solo combinare pochi file CSV occasionalmente, copiare e incollare manualmente i dati in fogli di lavoro separati è la soluzione più rapida.

Se lavori principalmente in Excel ed esegui questa attività regolarmente, una macro VBA può automatizzare il processo con il minimo sforzo.

Per gli sviluppatori che creano flussi di lavoro ripetibili o integrano l'elaborazione CSV nelle applicazioni, Python con Spire.XLS offre la massima flessibilità. Oltre all'unione di file CSV, consente una manipolazione avanzata dei fogli di calcolo e la generazione di documenti, rendendolo adatto a una vasta gamma di scenari di automazione.

Domande frequenti (FAQ)

Posso unire centinaia di file CSV in un'unica cartella di lavoro Excel?

Sì. VBA può gestire molti file, ma per batch molto grandi o flussi di lavoro automatizzati, una soluzione Python è generalmente più affidabile e scalabile.

Ogni file CSV diventerà il proprio foglio di lavoro?

Sì. Tutti e tre i metodi descritti in questo articolo preservano ogni CSV come foglio di lavoro separato invece di combinare tutti i dati in un unico foglio.

I nomi dei fogli di lavoro possono essere basati sui nomi dei file CSV?

Sì. Sia la macro VBA che l'esempio Python utilizzano automaticamente il nome del file CSV (senza estensione) come nome del foglio di lavoro.

Cosa succede se i miei file CSV utilizzano UTF-8 o altre codifiche?

La maggior parte dei file CSV può essere importata senza problemi. Se i tuoi file utilizzano una codifica o un delimitatore diverso, regola le impostazioni di importazione di conseguenza prima dell'elaborazione.

Posso continuare a modificare la cartella di lavoro dopo aver unito i file CSV?

Assolutamente sì. Dopo aver creato la cartella di lavoro, puoi formattare i fogli di lavoro, inserire grafici, aggiungere formule, proteggere la cartella di lavoro o esportarla in PDF proprio come qualsiasi altro file Excel.

Vedi anche