Una guía para crear o insertar listas desplegables en Word

Las listas desplegables son una de las funciones más útiles en Microsoft Word. Limitan la entrada del usuario a un conjunto específico de opciones predefinidas, lo que mejora la precisión de los datos, agiliza las respuestas y ofrece una experiencia de usuario más limpia. Ya sea que esté creando un formulario profesional o un cuestionario, saber cómo crear una lista desplegable en Word es una habilidad esencial para la ingeniería de documentos moderna.

A diferencia de las listas desplegables en Excel, que se utilizan con mayor frecuencia, la implementación de Word está diseñada específicamente para la creación de formularios y el diseño de documentos interactivos. En esta guía paso a paso, desglosamos todos los métodos fiables para crear una lista desplegable en Word.


¿Qué es una lista desplegable en Word?

Una lista desplegable es un elemento de interfaz de usuario que muestra una lista de opciones en formato de menú. Cuando un usuario hace clic en el control, aparece una lista de opciones predefinidas y puede seleccionar una para completar el campo.

Este control es particularmente útil en escenarios donde desea:

  • Estandarizar respuestas en formularios y encuestas.
  • Prevenir errores de entrada de datos limitando las opciones.
  • Acelerar la cumplimentación de formularios eliminando la escritura manual.
  • Recopilar datos limpios y consistentes para su análisis.

Método 1: Crear una lista desplegable usando controles de contenido

Disponible desde Word 2007 hasta el Microsoft 365 más reciente, este es el enfoque moderno y oficialmente compatible para añadir campos interactivos. Los controles de contenido en Word son flexibles, personalizables y funcionan sin necesidad de bloquear todo el documento.

Paso 1: Habilitar la pestaña Programador

El cuadro desplegable en Word se encuentra en la pestaña “Programador” (o “Desarrollador”), la cual está oculta de forma predeterminada para simplificar la interfaz de usuario estándar.

  • Haga clic en “Archivo > Opciones” (o “Word > Preferencias” en Mac).
  • En la ventana “Opciones de Word”, elija “Personalizar cinta de opciones”.
  • En el lado derecho, marque la casilla junto a la opción “Programador”.
  • Haga clic en “Aceptar”. La pestaña Programador aparecerá ahora en la cinta superior.

Habilitar la pestaña Programador en el cuadro de diálogo de Opciones de Word

Paso 2: Insertar el control de contenido de lista desplegable

  • Coloque el cursor donde desee que aparezca la lista desplegable.
  • Vaya a la pestaña “Programador” y localice el grupo “Controles”.
  • Haga clic en el icono “Control de contenido de lista desplegable” (parece una lista con una pequeña flecha).
  • Aparecerá un cuadro desplegable predeterminado en la posición del cursor.

Icono de Control de contenido de lista desplegable en la pestaña Programador

Paso 3: Añadir y personalizar elementos de la lista

  • Seleccione el control recién creado y haga clic en “Propiedades” en la cinta de opciones.
  • En el cuadro de diálogo “Propiedades de control de contenido”, configure los ajustes generales:
    • Introduzca un “Título” para su lista (aparece como una etiqueta sobre el control).
    • Introduzca una “Etiqueta” (un identificador interno para la automatización de documentos).
    • Elija un esquema de “Color” para el control.
    • Marque “No se puede eliminar el control de contenido” para evitar su eliminación accidental.
  • En la sección “Propiedades de lista desplegable”, haga clic en el botón “Agregar”.
  • En la ventana “Agregar opción”, introduzca su opción en el campo “Nombre para mostrar” (esto es lo que verán los usuarios en la lista).
  • El campo “Valor” se completará automáticamente con el mismo texto. Puede modificarlo si es necesario.
  • Repita este proceso para cada opción que desee incluir en su lista desplegable.
  • Utilice los botones “Modificar”, “Quitar”, “Subir” y “Bajar” para refinar su lista.
  • Haga clic en “Aceptar” para guardar sus ajustes.

Cuadro de diálogo Propiedades de control de contenido para configurar las opciones del desplegable

Paso 4: Probar el menú desplegable en Word

Haga clic en la pequeña flecha en el lado derecho del control para expandir la lista y seleccionar un elemento. El texto de marcador de posición predeterminado ("Elija un elemento.") será reemplazado por su selección.

El menú desplegable añadido a Word mostrando cinco opciones

Consejo profesional: La lista desplegable nativa de Microsoft Word solo admite selección única. Para selección múltiple, puede usar controles de contenido de casilla de verificación en Word.


Método 2: Usar campos de formulario heredados para compatibilidad

Si su documento necesita funcionar con Word 2003 o versiones anteriores, o guardarse en el formato antiguo .doc, utilice los campos de formulario desplegables heredados. Este enfoque requiere protección de documento para funcionar y admite características específicas de formulario como macros de salida y cálculos de campo.

Paso 1: Insertar el desplegable heredado

  • Desde la pestaña “Programador”, haga clic en el botón “Herramientas heredadas” (parece una caja de herramientas).
  • En “Formularios heredados”, haga clic en el icono “Campo de formulario desplegable”.
  • Aparecerá un cuadro de campo de formulario gris en la posición del cursor.

El botón Campo de formulario desplegable en Herramientas heredadas

Paso 2: Configurar las opciones del desplegable

  • Haga doble clic en el campo de formulario gris para abrir el cuadro de diálogo “Opciones de campo de formulario desplegable”.
  • En el campo “Elemento de lista desplegable”, escriba su primera opción.
  • Haga clic en “Agregar >>” para moverla al cuadro “Elementos en la lista desplegable”.
  • Repita para todas las opciones restantes.
  • Utilice los botones de flecha para reordenar los elementos o haga clic en “Quitar” para eliminar una opción.
  • Opcional: Configure nombres de marcadores, macros de salida o texto de ayuda para accesibilidad.
  • Haga clic en “Aceptar” para guardar.

Cuadro de diálogo Opciones de campo de formulario desplegable con botón Agregar y lista de elementos

Paso 3: Proteger el documento (Crucial)

A diferencia de los controles de contenido modernos, los campos de formulario heredados no funcionarán a menos que el documento esté protegido para el llenado de formularios.

  • Haga clic en “Restringir edición” en la pestaña “Programador”.
  • En el panel “Restringir edición” a la derecha:
    1. Marque “Permitir solo este tipo de edición en el documento”.
    2. Seleccione “Rellenando formularios” del desplegable.
  • Haga clic en “Sí, aplicar la protección”.
  • Introduzca una contraseña (opcional) y haga clic en “Aceptar”.
  • Los usuarios ahora pueden seleccionar de los desplegables pero no pueden editar el resto del documento.

Restringir edición a Rellenando formularios para activar el desplegable heredado


Método 3: Crear una lista desplegable mediante programación en C#

Para los desarrolladores que necesitan generar o modificar por lotes documentos de Word a gran escala, Free Spire.Doc for .NET proporciona una forma programática de insertar un menú desplegable en Word sin necesidad de tener Microsoft Office instalado en la máquina.

Paso 1: Instalar Free Spire.Doc

Puede añadir la biblioteca a su proyecto .NET a través de NuGet:

  • Interfaz gráfica de NuGet: Busque “FreeSpire.Doc” e instálelo.
  • Consola del Administrador de paquetes: Ejecute PM> Install-Package FreeSpire.Doc.

Alternativamente, descargue el archivo DLL manualmente desde el sitio web de Free Spire.Doc for .NET y añádalo como referencia.

Paso 2: Escribir el código C# para crear un desplegable en Word

El siguiente código crea un nuevo documento de Word, añade un control de contenido de lista desplegable etiquetado con nombres para mostrar personalizados y valores subyacentes, y guarda el archivo resultante:

using Spire.Doc;
using Spire.Doc.Fields;
using Spire.Doc.Documents;

namespace CreateDropDownList
{
    class Program
    {
        static void Main(string[] args)
        {
            // Crear un nuevo documento de Word
            Document document = new Document();
            Section section = document.AddSection();
            Paragraph paragraph = section.AddParagraph();

            // Añadir un texto de etiqueta antes del desplegable
            TextRange label = paragraph.AppendText("Departamento: ");
            label.CharacterFormat.Bold = true;

            // Crear una etiqueta de documento estructurado en línea (control de contenido desplegable)
            StructureDocumentTagInline sdt = new StructureDocumentTagInline(document);
            sdt.SDTProperties.SDTType = SdtType.DropDownList;
            sdt.SDTProperties.Alias = "Departamento";
            sdt.SDTProperties.Tag = "dept_selection";
            paragraph.ChildObjects.Add(sdt);

            // Definir los elementos de la lista desplegable
            SdtDropDownList dropDownList = new SdtDropDownList();
            dropDownList.ListItems.Add(new SdtListItem("Marketing", "MKT"));
            dropDownList.ListItems.Add(new SdtListItem("Ventas", "SLS"));
            dropDownList.ListItems.Add(new SdtListItem("Recursos Humanos", "HR"));
            dropDownList.ListItems.Add(new SdtListItem("Ingeniería", "ENG"));
            dropDownList.ListItems.Add(new SdtListItem("Finanzas", "FIN"));

            // Asignar elementos al control de contenido
            sdt.SDTProperties.ControlProperties = dropDownList;

            // Establecer el texto mostrado predeterminado (primer elemento)
            TextRange defaultText = new TextRange(document);
            defaultText.Text = dropDownList.ListItems[0].DisplayText;
            sdt.SDTContent.ChildObjects.Add(defaultText);

            // Guardar el documento
            document.SaveToFile("DropDownList.docx", FileFormat.Docx2016);
            document.Close();
        }
    }
}

Referencia de componentes clave

Componente Propósito
StructureDocumentTagInline Crea un control de contenido (SDT) dentro del párrafo.
SdtType.DropDownList Especifica el tipo de control como una lista desplegable.
SdtDropDownList Almacena la colección completa de elementos de la lista desplegable.
SdtListItem Representa una única opción en la lista (Texto de visualización + Valor).
SDTContent.ChildObjects.Add() Establece el valor predeterminado mostrado al abrir el documento.

Resultado:

Generar una lista desplegable de Word mediante C# y Free Spire.Doc

La enumeración SdtType admite una gama completa de controles. Más allá de los desplegables, también puede insertar cuadros combinados, casillas de verificación y selectores de fecha en Word.

Alternativa: Crear campo de formulario desplegable heredado en C#

Si necesita compatibilidad con formatos de Word antiguos, también puede crear un campo de formulario desplegable heredado:

DropDownFormField legacyDropDown = paragraph.AppendField("StatusField", FieldType.FieldFormDropDown) as DropDownFormField;
legacyDropDown.DropDownItems.Add("Marketing");
legacyDropDown.DropDownItems.Add("Ventas");
legacyDropDown.DropDownItems.Add("Recursos Humanos");
legacyDropDown.DropDownItems.Add("Ingeniería");
legacyDropDown.DropDownItems.Add("Finanzas");

// Habilitar protección de formulario (requerido para que los campos heredados funcionen)
document.Protect(ProtectionType.AllowOnlyFormFields, "");

Tenga en cuenta que los campos de formulario heredados requieren protección de documento para funcionar, al igual que el método heredado manual cubierto anteriormente.

Generar un campo de formulario desplegable heredado mediante C# y Free Spire.Doc


Preguntas frecuentes (FAQs)

P: ¿Cómo elimino una lista desplegable?

Seleccione el control y presione la tecla “Suprimir”. Si está bloqueado, abra “Propiedades” y desmarque primero "No se puede eliminar el control de contenido".

P: ¿Por qué no funciona mi lista desplegable?

  • Para campos de formulario heredados: El documento no está protegido para el llenado de formularios. Vaya a “Programador” > “Restringir edición” y habilite la protección de llenado de formularios.
  • Para controles de contenido: El control puede estar bloqueado para edición, o el documento está en un modo de compatibilidad que deshabilita los controles modernos.
  • Si la flecha de selección no aparece: Asegúrese de no estar en el Modo Diseño.

P: ¿Cuál es la diferencia entre una lista desplegable y un cuadro combinado?

Una lista desplegable restringe a los usuarios únicamente a sus opciones predefinidas. Un cuadro combinado permite tanto la selección de la lista como la entrada de texto libre.

P: ¿Existe un número máximo de elementos que puedo añadir a una lista desplegable?

Word no impone un límite estricto, pero por razones de usabilidad se recomienda mantener las listas por debajo de 20–30 elementos. Las listas muy largas se vuelven difíciles de navegar para los usuarios. Si necesita docenas de opciones, considere usar un cuadro combinado (que admite la búsqueda por escritura) o dividir las opciones en varios campos.


Reflexiones finales

Dominar cómo hacer una lista desplegable en Word transforma documentos estáticos en formularios dinámicos y fáciles de usar que mejoran la calidad de los datos y reducen el trabajo administrativo. Para la mayoría de los casos de uso cotidianos, los controles de contenido modernos ofrecen el mejor equilibrio de flexibilidad, apariencia y facilidad de uso. Cuando la compatibilidad con versiones anteriores es crítica, los campos de formulario heredados siguen siendo una opción fiable. Para flujos de trabajo de documentos automatizados o de alto volumen, la generación programática con una biblioteca .NET proporciona una solución escalable del lado del servidor.

Independientemente del método que elija, seguir los pasos anteriores le ayudará a crear listas desplegables pulidas y funcionales que funcionen de manera fiable en toda su organización.


Ver también

Eine Anleitung zum Erstellen oder Einfügen von Dropdown-Listen in Word

Dropdown-Listen sind eine der nützlichsten Funktionen in Microsoft Word. Sie beschränken die Benutzereingabe auf eine bestimmte Menge vordefinierter Auswahlmöglichkeiten, was die Datengenauigkeit verbessert, Antworten optimiert und für eine übersichtlichere Benutzererfahrung sorgt. Egal, ob Sie ein professionelles Formular oder einen Fragebogen erstellen, das Wissen, wie man eine Dropdown-Liste in Word erstellt, ist eine wesentliche Fähigkeit für die moderne Dokumentenerstellung.

Im Gegensatz zu Dropdown-Listen in Excel, die häufiger verwendet werden, ist die Implementierung in Word speziell für die Formularerstellung und interaktives Dokumentdesign konzipiert. In dieser Schritt-für-Schritt-Anleitung stellen wir jede zuverlässige Methode vor, um eine Dropdown-Liste in Word zu erstellen.


Was ist eine Dropdown-Liste in Word?

Eine Dropdown-Liste ist ein Benutzeroberflächenelement, das eine Liste von Auswahlmöglichkeiten in einem Menüformat anzeigt. Wenn ein Benutzer auf das Steuerelement klickt, erscheint eine Liste vordefinierter Optionen, aus denen er eine auswählen kann, um das Feld auszufüllen.

Dieses Steuerelement ist besonders nützlich in Szenarien, in denen Sie:

  • Antworten in Formularen und Umfragen standardisieren möchten
  • Dateneingabefehler verhindern möchten, indem Sie die Auswahlmöglichkeiten begrenzen
  • Das Ausfüllen von Formularen beschleunigen möchten, indem Sie das Tippen eliminieren
  • Saubere, konsistente Daten für die Analyse sammeln möchten

Methode 1: Erstellen einer Dropdown-Liste mit Inhaltssteuerelementen

Verfügbar ab Word 2007 bis zum neuesten Microsoft 365, ist dies der moderne, offiziell unterstützte Ansatz zum Hinzufügen interaktiver Felder. Inhaltssteuerelemente in Word sind flexibel, anpassbar und funktionieren, ohne das gesamte Dokument zu sperren.

Schritt 1: Aktivieren der Registerkarte „Entwicklertools“

Das Dropdown-Feld in Word befindet sich auf der Registerkarte „Entwicklertools“, die standardmäßig ausgeblendet ist, um die Benutzeroberfläche zu vereinfachen.

  • Klicken Sie auf „Datei > Optionen“ (oder „Word > Einstellungen“ auf dem Mac).
  • Wählen Sie im Fenster „Word-Optionen“ die Option „Menüband anpassen“.
  • Aktivieren Sie auf der rechten Seite das Kontrollkästchen neben „Entwicklertools“.
  • Klicken Sie auf „OK“. Die Registerkarte „Entwicklertools“ erscheint nun im oberen Menüband.

Registerkarte „Entwicklertools“ in den Word-Optionen aktivieren

Schritt 2: Einfügen des Dropdown-Inhaltssteuerelements

  • Platzieren Sie den Cursor an der Stelle, an der die Dropdown-Liste erscheinen soll.
  • Navigieren Sie zur Registerkarte „Entwicklertools“ und suchen Sie die Gruppe „Steuerelemente“.
  • Klicken Sie auf das Symbol „Dropdownlisten-Inhaltssteuerelement“ (es sieht aus wie eine Liste mit einem kleinen Pfeil).
  • Ein Standard-Dropdown-Feld erscheint an Ihrer Cursorposition.

Symbol für Dropdownlisten-Inhaltssteuerelement auf der Registerkarte „Entwicklertools“

Schritt 3: Hinzufügen und Anpassen von Listenelementen

  • Wählen Sie das neu erstellte Steuerelement aus und klicken Sie im Menüband auf „Eigenschaften“.
  • Konfigurieren Sie im Dialogfeld „Eigenschaften von Inhaltssteuerelementen“ die allgemeinen Einstellungen:
    • Geben Sie einen „Titel“ für Ihre Liste ein (erscheint als Bezeichnung über dem Steuerelement)
    • Geben Sie ein „Tag“ ein (ein interner Bezeichner für die Dokumentenautomatisierung)
    • Wählen Sie ein „Farbschema“ für das Steuerelement
    • Aktivieren Sie „Inhaltssteuerelement kann nicht gelöscht werden“, um ein versehentliches Entfernen zu verhindern
  • Klicken Sie im Abschnitt „Eigenschaften der Dropdownliste“ auf die Schaltfläche „Hinzufügen“.
  • Geben Sie im Fenster „Auswahl hinzufügen“ Ihre Option in das Feld „Anzeigename“ ein (dies ist das, was Benutzer in der Liste sehen werden).
  • Das Feld „Wert“ wird automatisch mit demselben Text ausgefüllt. Sie können ihn bei Bedarf ändern.
  • Wiederholen Sie diesen Vorgang für jede Option, die Sie in Ihre Dropdown-Liste aufnehmen möchten.
  • Verwenden Sie die Schaltflächen „Ändern“, „Entfernen“, „Nach oben“ und „Nach unten“, um Ihre Liste zu verfeinern.
  • Klicken Sie auf „OK“, um Ihre Einstellungen zu speichern.

Dialogfeld „Eigenschaften von Inhaltssteuerelementen“ zur Konfiguration der Dropdown-Optionen

Schritt 4: Testen des Dropdown-Menüs in Word

Klicken Sie auf den kleinen Pfeil auf der rechten Seite des Steuerelements, um die Liste zu erweitern und ein Element auszuwählen. Der Standard-Platzhaltertext („Wählen Sie ein Element aus.“) wird durch Ihre Auswahl ersetzt.

Das in Word hinzugefügte Dropdown-Menü mit fünf Optionen

Profi-Tipp: Die native Microsoft Word-Dropdown-Liste unterstützt nur eine Einzelauswahl. Für eine Mehrfachauswahl können Sie Kontrollkästchen-Inhaltssteuerelemente in Word verwenden.


Methode 2: Verwendung von Legacy-Formularfeldern für Kompatibilität

Wenn Ihr Dokument mit Word 2003 und früher funktionieren oder im älteren .doc-Format gespeichert werden muss, verwenden Sie Legacy-Dropdown-Formularfelder. Dieser Ansatz erfordert zum Funktionieren einen Dokumentschutz und unterstützt formularspezifische Funktionen wie Exit-Makros und Feldberechnungen.

Schritt 1: Einfügen des Legacy-Dropdowns

  • Klicken Sie auf der Registerkarte „Entwicklertools“ auf die Schaltfläche „Legacytools“ (sieht aus wie eine Werkzeugkiste).
  • Klicken Sie unter „Legacyformulare“ auf das Symbol „Dropdown-Formularfeld“.
  • Ein graues Formularfeld erscheint an Ihrer Cursorposition.

Die Schaltfläche „Dropdown-Formularfeld“ in den Legacytools

Schritt 2: Konfigurieren der Dropdown-Optionen

  • Doppelklicken Sie auf das graue Formularfeld, um das Dialogfeld „Optionen für Dropdown-Formularfeld“ zu öffnen.
  • Geben Sie im Feld „Dropdown-Element“ Ihre erste Option ein.
  • Klicken Sie auf „Hinzufügen >>“, um sie in das Feld „Elemente in Dropdown-Liste“ zu verschieben.
  • Wiederholen Sie dies für alle verbleibenden Optionen.
  • Verwenden Sie die Pfeiltasten, um die Elemente neu anzuordnen, oder klicken Sie auf „Entfernen“, um eine Option zu löschen.
  • Optional: Konfigurieren Sie Textmarkennamen, Exit-Makros oder Hilfetexte für die Barrierefreiheit.
  • Klicken Sie auf „OK“, um zu speichern.

Dialogfeld „Optionen für Dropdown-Formularfeld“ mit Schaltfläche „Hinzufügen“ und Elementliste

Schritt 3: Schützen des Dokuments (Wichtig)

Im Gegensatz zu modernen Inhaltssteuerelementen funktionieren Legacy-Formularfelder nicht, es sei denn, das Dokument ist für das Ausfüllen von Formularen geschützt.

  • Klicken Sie auf der Registerkarte „Entwicklertools“ auf „Bearbeitung einschränken“.
  • Im Bereich „Bearbeitung einschränken“ auf der rechten Seite:
    1. Aktivieren Sie „Bearbeitungseinschränkungen
    2. Wählen Sie „Ausfüllen von Formularen“ aus dem Dropdown-Menü
  • Klicken Sie auf „Ja, Schutz jetzt anwenden“.
  • Geben Sie ein Kennwort ein (optional) und klicken Sie auf „OK“.
  • Benutzer können nun aus Dropdowns auswählen, aber den Rest des Dokuments nicht bearbeiten.

Bearbeitung auf „Ausfüllen von Formularen“ einschränken, um das Legacy-Dropdown zu aktivieren


Methode 3: Programmgesteuertes Erstellen einer Dropdown-Liste in C#

Für Entwickler, die Word-Dokumente in großem Maßstab generieren oder stapelweise ändern müssen, bietet Free Spire.Doc für .NET eine programmgesteuerte Möglichkeit, Dropdown-Menüs in Word einzufügen, ohne dass Microsoft Office auf dem Computer installiert sein muss.

Schritt 1: Installieren von Free Spire.Doc

Sie können die Bibliothek über NuGet zu Ihrem .NET-Projekt hinzufügen:

  • NuGet-GUI: Suchen Sie nach „FreeSpire.Doc“ und installieren Sie es.
  • Paket-Manager-Konsole: Führen Sie PM> Install-Package FreeSpire.Doc aus.

Alternativ können Sie die DLL manuell von der Website Free Spire.Doc für .NET herunterladen und als Referenz hinzufügen.

Schritt 2: Schreiben des C#-Codes zum Erstellen eines Dropdowns in Word

Der folgende Code erstellt ein neues Word-Dokument, fügt ein beschriftetes Dropdown-Listen-Inhaltssteuerelement mit benutzerdefinierten Anzeigenamen und zugrunde liegenden Werten hinzu und speichert die Ausgabedatei:

using Spire.Doc;
using Spire.Doc.Fields;
using Spire.Doc.Documents;

namespace CreateDropDownList
{
    class Program
    {
        static void Main(string[] args)
        {
            // Ein neues Word-Dokument erstellen
            Document document = new Document();
            Section section = document.AddSection();
            Paragraph paragraph = section.AddParagraph();

            // Einen Beschriftungstext vor dem Dropdown hinzufügen
            TextRange label = paragraph.AppendText("Abteilung: ");
            label.CharacterFormat.Bold = true;

            // Ein Inline-Strukturdokument-Tag (Dropdown-Inhaltssteuerelement) erstellen
            StructureDocumentTagInline sdt = new StructureDocumentTagInline(document);
            sdt.SDTProperties.SDTType = SdtType.DropDownList;
            sdt.SDTProperties.Alias = "Abteilung";
            sdt.SDTProperties.Tag = "dept_selection";
            paragraph.ChildObjects.Add(sdt);

            // Dropdown-Listenelemente definieren
            SdtDropDownList dropDownList = new SdtDropDownList();
            dropDownList.ListItems.Add(new SdtListItem("Marketing", "MKT"));
            dropDownList.ListItems.Add(new SdtListItem("Vertrieb", "SLS"));
            dropDownList.ListItems.Add(new SdtListItem("Personalwesen", "HR"));
            dropDownList.ListItems.Add(new SdtListItem("Technik", "ENG"));
            dropDownList.ListItems.Add(new SdtListItem("Finanzen", "FIN"));

            // Elemente dem Inhaltssteuerelement zuweisen
            sdt.SDTProperties.ControlProperties = dropDownList;

            // Standardmäßig angezeigten Text festlegen (erstes Element)
            TextRange defaultText = new TextRange(document);
            defaultText.Text = dropDownList.ListItems[0].DisplayText;
            sdt.SDTContent.ChildObjects.Add(defaultText);

            // Das Dokument speichern
            document.SaveToFile("DropDownList.docx", FileFormat.Docx2016);
            document.Close();
        }
    }
}

Referenz der Schlüsselkomponenten

Komponente Zweck
StructureDocumentTagInline Erstellt ein Inhaltssteuerelement (SDT) innerhalb des Absatzes.
SdtType.DropDownList Legt den Steuerelementtyp als Dropdown-Liste fest.
SdtDropDownList Speichert die vollständige Sammlung der Dropdown-Listenelemente.
SdtListItem Repräsentiert eine einzelne Option in der Liste (Anzeigetext + Wert).
SDTContent.ChildObjects.Add() Legt den Standardwert fest, der beim Öffnen des Dokuments angezeigt wird.

Ausgabe:

Generieren einer Word-Dropdown-Liste über C# und Free Spire.Doc

Die SdtType-Enumeration unterstützt eine ganze Reihe von Steuerelementen. Neben Dropdowns können Sie auch Kombinationsfelder, Kontrollkästchen und Datumsauswahlen in Word einfügen.

Alternative: Legacy-Dropdown-Formularfeld in C# erstellen

Wenn Sie Kompatibilität mit älteren Word-Formaten benötigen, können Sie auch ein Legacy-Dropdown-Formularfeld erstellen:

DropDownFormField legacyDropDown = paragraph.AppendField("StatusField", FieldType.FieldFormDropDown) as DropDownFormField;
legacyDropDown.DropDownItems.Add("Marketing");
legacyDropDown.DropDownItems.Add("Vertrieb");
legacyDropDown.DropDownItems.Add("Personalwesen");
legacyDropDown.DropDownItems.Add("Technik");
legacyDropDown.DropDownItems.Add("Finanzen");

// Formularschutz aktivieren (erforderlich, damit Legacy-Felder funktionieren)
document.Protect(ProtectionType.AllowOnlyFormFields, "");

Beachten Sie, dass Legacy-Formularfelder einen Dokumentschutz erfordern, um zu funktionieren, genau wie die zuvor behandelte manuelle Legacy-Methode.

Generieren eines Legacy-Dropdown-Formularfelds über C# und Free Spire.Doc


Häufig gestellte Fragen (FAQs)

F: Wie entferne ich eine Dropdown-Liste?

Wählen Sie das Steuerelement aus und drücken Sie die „Entf“-Taste. Wenn es gesperrt ist, öffnen Sie „Eigenschaften“ und deaktivieren Sie zuerst „Inhaltssteuerelement kann nicht gelöscht werden“.

F: Warum funktioniert meine Dropdown-Liste nicht?

  • Bei Legacy-Formularfeldern: Das Dokument ist nicht für das Ausfüllen von Formularen geschützt. Gehen Sie zu „Entwicklertools“ > „Bearbeitung einschränken“ und aktivieren Sie den Schutz für das Ausfüllen von Formularen.
  • Bei Inhaltssteuerelementen: Das Steuerelement ist möglicherweise für die Bearbeitung gesperrt oder das Dokument befindet sich in einem Kompatibilitätsmodus, der moderne Steuerelemente deaktiviert.
  • Wenn der Auswahlpfeil nicht erscheint: Stellen Sie sicher, dass Sie sich nicht im Entwurfsmodus befinden.

F: Was ist der Unterschied zwischen einer Dropdown-Liste und einem Kombinationsfeld?

Eine Dropdown-Liste beschränkt Benutzer nur auf Ihre vordefinierten Optionen. Ein Kombinationsfeld ermöglicht sowohl die Auswahl aus der Liste als auch die freie Texteingabe.

F: Gibt es eine maximale Anzahl von Elementen, die ich einer Dropdown-Liste hinzufügen kann?

Word erzwingt kein striktes hartes Limit, aber aus Gründen der Benutzerfreundlichkeit wird empfohlen, Listen unter 20–30 Elementen zu halten. Sehr lange Listen werden für Benutzer schwer zu navigieren. Wenn Sie Dutzende von Optionen benötigen, sollten Sie die Verwendung eines Kombinationsfelds (das die Suche durch Tippen unterstützt) oder die Aufteilung der Auswahlmöglichkeiten auf mehrere Felder in Betracht ziehen.


Abschließende Gedanken

Das Beherrschen der Erstellung einer Dropdown-Liste in Word verwandelt statische Dokumente in dynamische, benutzerfreundliche Formulare, die die Datenqualität verbessern und den administrativen Aufwand reduzieren. Für die meisten alltäglichen Anwendungsfälle bieten moderne Inhaltssteuerelemente das beste Gleichgewicht zwischen Flexibilität, Aussehen und Benutzerfreundlichkeit. Wenn Abwärtskompatibilität entscheidend ist, bleiben Legacy-Formularfelder eine zuverlässige Option. Für hochvolumige oder automatisierte Dokumenten-Workflows bietet die programmgesteuerte Generierung mit einer .NET-Bibliothek eine skalierbare, serverseitige Lösung.

Egal für welche Methode Sie sich entscheiden, die oben genannten Schritte helfen Ihnen dabei, ausgefeilte, funktionale Dropdown-Listen zu erstellen, die in Ihrem gesamten Unternehmen zuverlässig funktionieren.


Siehe auch

Руководство по созданию или вставке раскрывающихся списков в Word

Раскрывающиеся списки — одна из самых полезных функций в Microsoft Word. Они ограничивают ввод пользователя определенным набором заранее заданных вариантов, что повышает точность данных, упрощает получение ответов и делает работу с документом более удобной. Независимо от того, создаете ли вы профессиональную форму или анкету, умение создавать раскрывающийся список в Word является важным навыком для современного документооборота.

В отличие от раскрывающихся списков в Excel, которые используются чаще, реализация в Word специально разработана для создания форм и интерактивного дизайна документов. В этом пошаговом руководстве мы разберем все надежные способы создания раскрывающегося списка в Word.


Что такое раскрывающийся список в Word?

Раскрывающийся список — это элемент пользовательского интерфейса, который отображает список вариантов в виде меню. Когда пользователь нажимает на элемент управления, появляется список заранее заданных опций, из которых можно выбрать одну для заполнения поля.

Этот элемент особенно полезен в ситуациях, когда вы хотите:

  • Стандартизировать ответы в формах и опросах
  • Предотвратить ошибки ввода данных, ограничив выбор
  • Ускорить заполнение форм, исключив необходимость печати
  • Собирать чистые и согласованные данные для анализа

Способ 1: Создание раскрывающегося списка с помощью элементов управления содержимым

Доступный в версиях Word от 2007 до новейшего Microsoft 365, это современный, официально поддерживаемый подход для добавления интерактивных полей. Элементы управления содержимым в Word гибкие, настраиваемые и работают без необходимости блокировки всего документа.

Шаг 1: Включите вкладку «Разработчик»

Раскрывающийся список в Word находится на вкладке «Разработчик», которая по умолчанию скрыта для упрощения стандартного интерфейса.

  • Нажмите «Файл > Параметры» (или «Word > Параметры» на Mac).
  • В окне «Параметры Word» выберите «Настроить ленту».
  • В правой части установите флажок рядом с пунктом «Разработчик».
  • Нажмите «ОК». Теперь вкладка «Разработчик» появится на верхней ленте.

Включение вкладки «Разработчик» в диалоговом окне параметров Word

Шаг 2: Вставьте элемент управления содержимым «Раскрывающийся список»

  • Поместите курсор туда, где должен появиться раскрывающийся список.
  • Перейдите на вкладку «Разработчик» и найдите группу «Элементы управления».
  • Нажмите значок «Элемент управления содержимым "Раскрывающийся список"» (он выглядит как список с маленькой стрелкой).
  • Стандартное поле списка появится в месте расположения курсора.

Значок элемента управления содержимым «Раскрывающийся список» на вкладке «Разработчик»

Шаг 3: Добавление и настройка элементов списка

  • Выберите созданный элемент управления и нажмите «Свойства» на ленте.
  • В диалоговом окне «Свойства элемента управления содержимым» настройте общие параметры:
    • Введите «Заголовок» для вашего списка (отображается как метка над элементом)
    • Введите «Тег» (внутренний идентификатор для автоматизации документа)
    • Выберите цветовую схему для элемента
    • Установите флажок «Элемент управления содержимым нельзя удалить», чтобы предотвратить случайное удаление
  • В разделе «Свойства раскрывающегося списка» нажмите кнопку «Добавить».
  • В окне «Добавление выбора» введите свой вариант в поле «Отображаемое имя» (это то, что пользователи увидят в списке).
  • Поле «Значение» заполнится автоматически тем же текстом. Вы можете изменить его при необходимости.
  • Повторите этот процесс для каждого варианта, который хотите включить в список.
  • Используйте кнопки «Изменить», «Удалить», «Вверх» и «Вниз» для упорядочивания списка.
  • Нажмите «ОК» для сохранения настроек.

Диалоговое окно свойств элемента управления содержимым для настройки параметров списка

Шаг 4: Проверка раскрывающегося меню в Word

Нажмите маленькую стрелку с правой стороны элемента управления, чтобы развернуть список и выбрать нужный пункт. Текст-заполнитель по умолчанию («Выберите элемент») будет заменен на ваш выбор.

Раскрывающееся меню, добавленное в Word, с пятью вариантами

Совет: Стандартный раскрывающийся список Microsoft Word поддерживает только одиночный выбор. Для множественного выбора можно использовать элементы управления содержимым «Флажок» в Word.


Способ 2: Использование устаревших полей формы для совместимости

Если ваш документ должен работать в Word 2003 и более ранних версиях или сохраняться в старом формате .doc, используйте устаревшие поля формы «Раскрывающийся список». Этот подход требует защиты документа для работы и поддерживает специфические функции форм, такие как макросы выхода и вычисления полей.

Шаг 1: Вставка устаревшего раскрывающегося списка

  • На вкладке «Разработчик» нажмите кнопку «Инструменты из предыдущих версий» (выглядит как набор инструментов).
  • В разделе «Формы из предыдущих версий» нажмите значок «Поле формы "Раскрывающийся список"».
  • Серое поле формы появится в месте расположения курсора.

Кнопка «Поле формы

Шаг 2: Настройка параметров раскрывающегося списка

  • Дважды щелкните по серому полю формы, чтобы открыть диалоговое окно «Параметры поля формы "Раскрывающийся список"».
  • В поле «Элемент раскрывающегося списка» введите ваш первый вариант.
  • Нажмите «Добавить >>», чтобы переместить его в поле «Элементы в раскрывающемся списке».
  • Повторите для всех остальных вариантов.
  • Используйте кнопки со стрелками для изменения порядка элементов или нажмите «Удалить», чтобы убрать вариант.
  • Дополнительно: настройте имена закладок, макросы выхода или справочный текст для доступности.
  • Нажмите «ОК» для сохранения.

Диалоговое окно параметров поля формы «Раскрывающийся список» с кнопкой добавления и списком элементов

Шаг 3: Защита документа (Критически важно)

В отличие от современных элементов управления, устаревшие поля формы не будут работать, если документ не защищен для заполнения форм.

  • Нажмите «Ограничить редактирование» на вкладке «Разработчик».
  • В панели «Ограничение редактирования» справа:
    1. Установите флажок «Разрешить только указанный способ редактирования документа»
    2. Выберите «Заполнение форм» из раскрывающегося списка
  • Нажмите «Да, включить защиту».
  • Введите пароль (необязательно) и нажмите «ОК».
  • Теперь пользователи могут выбирать значения из списков, но не могут редактировать остальную часть документа.

Ограничение редактирования до «Заполнения форм» для активации устаревшего списка


Способ 3: Программное создание раскрывающегося списка на C#

Для разработчиков, которым необходимо создавать или массово изменять документы Word, Free Spire.Doc for .NET предоставляет программный способ вставки раскрывающегося меню в Word без необходимости установки Microsoft Office на машине.

Шаг 1: Установка Free Spire.Doc

Вы можете добавить библиотеку в свой .NET проект через NuGet:

  • NuGet GUI: Найдите «FreeSpire.Doc» и установите.
  • Консоль диспетчера пакетов: Выполните команду PM> Install-Package FreeSpire.Doc.

Альтернативно, скачайте DLL вручную с сайта Free Spire.Doc for .NET и добавьте её как ссылку.

Шаг 2: Написание кода на C# для создания раскрывающегося списка в Word

Следующий код создает новый документ Word, добавляет элемент управления содержимым «Раскрывающийся список» с меткой, пользовательскими отображаемыми именами и базовыми значениями, а затем сохраняет выходной файл:

using Spire.Doc;
using Spire.Doc.Fields;
using Spire.Doc.Documents;

namespace CreateDropDownList
{
    class Program
    {
        static void Main(string[] args)
        {
            // Создание нового документа Word
            Document document = new Document();
            Section section = document.AddSection();
            Paragraph paragraph = section.AddParagraph();

            // Добавление текста метки перед списком
            TextRange label = paragraph.AppendText("Отдел: ");
            label.CharacterFormat.Bold = true;

            // Создание встроенного тега структурированного документа (элемент управления содержимым)
            StructureDocumentTagInline sdt = new StructureDocumentTagInline(document);
            sdt.SDTProperties.SDTType = SdtType.DropDownList;
            sdt.SDTProperties.Alias = "Department";
            sdt.SDTProperties.Tag = "dept_selection";
            paragraph.ChildObjects.Add(sdt);

            // Определение элементов раскрывающегося списка
            SdtDropDownList dropDownList = new SdtDropDownList();
            dropDownList.ListItems.Add(new SdtListItem("Маркетинг", "MKT"));
            dropDownList.ListItems.Add(new SdtListItem("Продажи", "SLS"));
            dropDownList.ListItems.Add(new SdtListItem("HR", "HR"));
            dropDownList.ListItems.Add(new SdtListItem("Инженерия", "ENG"));
            dropDownList.ListItems.Add(new SdtListItem("Финансы", "FIN"));

            // Назначение элементов элементу управления
            sdt.SDTProperties.ControlProperties = dropDownList;

            // Установка текста по умолчанию (первый элемент)
            TextRange defaultText = new TextRange(document);
            defaultText.Text = dropDownList.ListItems[0].DisplayText;
            sdt.SDTContent.ChildObjects.Add(defaultText);

            // Сохранение документа
            document.SaveToFile("DropDownList.docx", FileFormat.Docx2016);
            document.Close();
        }
    }
}

Справочник ключевых компонентов

Компонент Назначение
StructureDocumentTagInline Создает элемент управления содержимым (SDT) внутри абзаца.
SdtType.DropDownList Указывает тип элемента управления как раскрывающийся список.
SdtDropDownList Хранит полную коллекцию элементов раскрывающегося списка.
SdtListItem Представляет отдельный вариант в списке (Отображаемый текст + Значение).
SDTContent.ChildObjects.Add() Устанавливает значение по умолчанию, отображаемое при открытии документа.

Результат:

Создание раскрывающегося списка Word через C# и Free Spire.Doc

Перечисление SdtType поддерживает полный спектр элементов управления. Помимо раскрывающихся списков, вы также можете вставлять комбинированные списки, флажки и средства выбора даты в Word.

Альтернатива: Создание устаревшего поля формы «Раскрывающийся список» на C#

Если вам нужна совместимость со старыми форматами Word, вы также можете создать устаревшее поле формы:

DropDownFormField legacyDropDown = paragraph.AppendField("StatusField", FieldType.FieldFormDropDown) as DropDownFormField;
legacyDropDown.DropDownItems.Add("Маркетинг");
legacyDropDown.DropDownItems.Add("Продажи");
legacyDropDown.DropDownItems.Add("HR");
legacyDropDown.DropDownItems.Add("Инженерия");
legacyDropDown.DropDownItems.Add("Финансы");

// Включение защиты формы (требуется для работы устаревших полей)
document.Protect(ProtectionType.AllowOnlyFormFields, "");

Обратите внимание, что устаревшие поля формы требуют защиты документа для работы, так же как и ручной способ, описанный ранее.

Создание устаревшего поля формы «Раскрывающийся список» через C# и Free Spire.Doc


Часто задаваемые вопросы (FAQ)

В: Как удалить раскрывающийся список?

Выберите элемент управления и нажмите клавишу «Delete». Если он заблокирован, сначала откройте «Свойства» и снимите флажок «Элемент управления содержимым нельзя удалить».

В: Почему мой раскрывающийся список не работает?

  • Для устаревших полей формы: Документ не защищен для заполнения форм. Перейдите в «Разработчик» > «Ограничить редактирование» и включите защиту заполнения форм.
  • Для элементов управления содержимым: Элемент может быть заблокирован для редактирования, или документ находится в режиме совместимости, который отключает современные элементы управления.
  • Если стрелка выбора не появляется: Убедитесь, что вы не находитесь в режиме конструктора.

В: В чем разница между раскрывающимся списком и комбинированным списком?

Раскрывающийся список ограничивает пользователей только вашими заранее заданными вариантами. Комбинированный список позволяет как выбирать из списка, так и вводить произвольный текст.

В: Есть ли максимальное количество элементов, которые можно добавить в раскрывающийся список?

Word не устанавливает жесткого ограничения, но для удобства использования рекомендуется ограничивать списки 20–30 элементами. Очень длинные списки становятся неудобными для навигации. Если вам нужны десятки вариантов, рассмотрите возможность использования комбинированного списка (который поддерживает поиск по мере ввода) или разделения вариантов на несколько полей.


Заключение

Освоение того, как сделать раскрывающийся список в Word, превращает статические документы в динамические, удобные для пользователя формы, которые повышают качество данных и сокращают административную работу. Для большинства повседневных задач современные элементы управления содержимым предлагают наилучший баланс гибкости, внешнего вида и простоты использования. Когда критически важна обратная совместимость, устаревшие поля формы остаются надежным вариантом. Для автоматизированных рабочих процессов с большими объемами документов программная генерация с помощью .NET-библиотеки обеспечивает масштабируемое серверное решение.

Какой бы метод вы ни выбрали, выполнение описанных выше шагов поможет вам создать отточенные, функциональные раскрывающиеся списки, которые будут надежно работать во всей вашей организации.


Смотрите также

Mesclar vários arquivos CSV em uma pasta de trabalho do Excel

Ao trabalhar com relatórios exportados de diferentes sistemas, é comum acabar com dezenas de arquivos CSV. Por exemplo, cada departamento, loja ou mês pode gerar seu próprio relatório CSV. Embora isso torne a coleta de dados simples, gerenciar um grande número de arquivos separados rapidamente se torna inconveniente.

Uma solução prática é combinar todos os arquivos CSV em uma única pasta de trabalho do Excel, mantendo cada CSV como uma planilha separada. Isso preserva a estrutura original do arquivo, facilita a navegação e permite que você compartilhe uma única pasta de trabalho em vez de vários arquivos individuais.

Neste artigo, apresentaremos três métodos práticos — desde uma abordagem manual simples até a automação do Excel com VBA e uma solução totalmente programática em Python.

Métodos abordados:

Método 1. Copiar e colar arquivos CSV em planilhas separadas

Se você tiver apenas alguns arquivos CSV para mesclar, a solução mais simples é copiar seus conteúdos para diferentes planilhas manualmente.

Um detalhe importante é que você deve abrir cada arquivo CSV com o Microsoft Excel em vez de um editor de texto como o Bloco de Notas. Quando um CSV é aberto no Excel, suas linhas e colunas são analisadas corretamente com base no delimitador. Se você copiar o texto diretamente do Bloco de Notas, o Excel poderá colar tudo em uma única coluna em vez de separar os valores automaticamente.

Copiar e colar arquivos CSV em planilhas separadas

Passos

  1. Abra o Microsoft Excel e crie uma nova pasta de trabalho.
  2. Abra o primeiro arquivo CSV usando o Excel.
  3. Selecione todos os dados (Ctrl + A) e copie-os (Ctrl + C).
  4. Retorne à nova pasta de trabalho e cole os dados na primeira planilha.
  5. Renomeie a planilha, se necessário.
  6. Repita o processo para cada arquivo CSV restante, criando uma nova planilha a cada vez.
  7. Salve a pasta de trabalho como um arquivo .xlsx.

Prós

  • Não requer programação.
  • Funciona em qualquer instalação do Excel.
  • Preserva um CSV por planilha.
  • Ideal para tarefas ocasionais envolvendo apenas alguns arquivos.

Contras

  • Demorado ao processar muitos arquivos.
  • Totalmente manual.
  • Fácil de cometer erros ao lidar com dezenas de arquivos CSV.

Método 2. Usar uma macro VBA para importar vários arquivos CSV

Se você realiza essa tarefa frequentemente dentro do Excel, uma macro VBA pode automatizar todo o processo. A macro verifica uma pasta, abre cada arquivo CSV, copia sua planilha para a pasta de trabalho atual e nomeia a planilha com o nome do arquivo CSV.

Combinar vários arquivos CSV no Excel usando macro VBA

Passo 1. Criar uma pasta de trabalho em branco

Abra o Excel e crie uma nova pasta de trabalho. Esta pasta de trabalho será o destino que armazenará todas as planilhas importadas.

Passo 2. Abrir o Editor VBA

Pressione Alt + F11 para abrir o Editor do Visual Basic.

Escolha Inserir > Módulo e cole o código a seguir no novo módulo.

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("Digite o caminho da pasta contendo os arquivos 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 "Arquivos CSV foram mesclados com sucesso."

End Sub

Passo 3. Executar a macro

Pressione F5, insira a pasta que contém seus arquivos CSV e a macro importará automaticamente cada CSV para sua própria planilha.

Prós

  • Muito mais rápido do que copiar manualmente.
  • Executado inteiramente dentro do Microsoft Excel.
  • Cria automaticamente uma planilha para cada arquivo CSV.
  • Adequado para usuários que trabalham regularmente com o Excel.

Contras

  • Requer pastas de trabalho habilitadas para macro.
  • Os usuários devem habilitar macros VBA.
  • Menos adequado para automação autônoma ou no lado do servidor.

Método 3. Mesclar vários arquivos CSV em Python usando Spire.XLS

Para fluxos de trabalho recorrentes, tarefas agendadas ou aplicações empresariais, a automação programática é frequentemente a solução mais eficiente.

Muitos desenvolvedores pensam imediatamente no Pandas para processamento de CSV. O Pandas é uma excelente biblioteca para ler, analisar e transformar dados tabulares. No entanto, seu foco principal é a análise de dados, não a geração de documentos.

Se o seu fluxo de trabalho vai além da simples importação de arquivos CSV — por exemplo, formatar planilhas, aplicar estilos, inserir gráficos, proteger pastas de trabalho ou exportar a pasta de trabalho final para PDF — uma biblioteca de planilhas como o Free Spire.XLS for Python oferece uma solução mais completa.

Primeiro, instale a biblioteca:

pip install Spire.XLS

Em seguida, use o código a seguir para mesclar cada arquivo CSV em uma pasta em uma única pasta de trabalho do Excel, com cada CSV se tornando uma planilha separada.

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

input_folder = "input"
output_folder = "output"

# Criar a pasta de trabalho de destino
merged_workbook = Workbook()
merged_workbook.Worksheets.Clear()

# Processar cada arquivo 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
)

Saída:

Mesclar vários arquivos CSV em uma pasta de trabalho do Excel usando Python

Comparado com métodos manuais ou VBA, esta abordagem é muito mais fácil de integrar em fluxos de trabalho automatizados. Após gerar a pasta de trabalho, você pode continuar processando-a com o Spire.XLS — por exemplo:

  • Aplicar fontes, cores, bordas e formatos numéricos.
  • Congelar painéis ou ajustar larguras de coluna automaticamente.
  • Criar gráficos e tabelas dinâmicas.
  • Proteger planilhas ou a pasta de trabalho.
  • Exportar a pasta de trabalho concluída para PDF ou outros formatos.

Essas capacidades a tornam adequada não apenas para mesclagem de CSV, mas também para pipelines de geração de relatórios de ponta a ponta.

Comparação dos três métodos

Método Programação necessária Processamento em lote Melhor para
Copiar e colar Não Limitado Tarefas únicas com apenas alguns arquivos CSV
Macro VBA VBA básico Sim Usuários de Excel que importam arquivos CSV regularmente
Python + Free Spire.XLS Python Excelente Fluxos de trabalho automatizados, aplicações empresariais e processamento em lote

Conclusão

O melhor método depende da frequência com que você precisa realizar a tarefa.

Se você só precisa combinar alguns arquivos CSV ocasionalmente, copiar e colar os dados manualmente em planilhas separadas é a solução mais rápida.

Se você trabalha principalmente no Excel e realiza essa tarefa regularmente, uma macro VBA pode automatizar o processo com esforço mínimo.

Para desenvolvedores que criam fluxos de trabalho repetíveis ou integram o processamento de CSV em aplicações, o Python com Spire.XLS oferece a maior flexibilidade. Além de mesclar arquivos CSV, ele permite manipulação avançada de planilhas e geração de documentos, tornando-o adequado para uma ampla gama de cenários de automação.

Perguntas frequentes (FAQs)

Posso mesclar centenas de arquivos CSV em uma única pasta de trabalho do Excel?

Sim. O VBA pode lidar com muitos arquivos, mas para lotes muito grandes ou fluxos de trabalho automatizados, uma solução em Python é geralmente mais confiável e escalável.

Cada arquivo CSV se tornará sua própria planilha?

Sim. Todos os três métodos descritos neste artigo preservam cada CSV como uma planilha separada, em vez de combinar todos os dados em uma única planilha.

Os nomes das planilhas podem ser baseados nos nomes dos arquivos CSV?

Sim. Tanto a macro VBA quanto o exemplo em Python usam automaticamente o nome do arquivo CSV (sem a extensão) como o nome da planilha.

E se meus arquivos CSV usarem UTF-8 ou outras codificações?

A maioria dos arquivos CSV pode ser importada sem problemas. Se seus arquivos usarem uma codificação ou delimitador diferente, ajuste as configurações de importação adequadamente antes de processar.

Posso continuar editando a pasta de trabalho após mesclar os arquivos CSV?

Com certeza. Após a criação da pasta de trabalho, você pode formatar planilhas, inserir gráficos, adicionar fórmulas, proteger a pasta de trabalho ou exportá-la para PDF como qualquer outro arquivo do Excel.

Veja também

여러 CSV 파일을 하나의 Excel 통합 문서로 병합

서로 다른 시스템에서 내보낸 보고서를 작업하다 보면 수십 개의 CSV 파일이 생기는 경우가 흔합니다. 예를 들어, 각 부서, 매장 또는 월별로 자체 CSV 보고서를 생성할 수 있습니다. 이는 데이터 수집을 간편하게 만들지만, 별도의 파일이 많아지면 관리하기가 매우 번거로워집니다.

실용적인 해결책은 모든 CSV 파일을 하나의 Excel 통합 문서로 결합하면서 각 CSV를 별도의 워크시트로 유지하는 것입니다. 이렇게 하면 원래 파일 구조가 보존되고, 탐색이 쉬워지며, 여러 개의 개별 파일 대신 하나의 통합 문서를 공유할 수 있습니다.

이 기사에서는 간단한 수동 방식부터 VBA를 이용한 Excel 자동화, 그리고 완전한 프로그래밍 방식인 Python 솔루션까지 세 가지 실용적인 방법을 소개합니다.

다루는 방법:

방법 1. CSV 파일을 별도의 워크시트로 복사 및 붙여넣기

병합할 CSV 파일이 몇 개뿐이라면, 내용을 수동으로 다른 워크시트에 복사하는 것이 가장 간단한 해결책입니다.

한 가지 중요한 점은 메모장과 같은 텍스트 편집기가 아닌 Microsoft Excel로 각 CSV 파일을 열어야 한다는 것입니다. CSV를 Excel에서 열면 구분 기호를 기준으로 행과 열이 올바르게 파싱됩니다. 메모장에서 텍스트를 직접 복사하면, Excel이 값을 자동으로 구분하지 않고 모든 내용을 단일 열에 붙여넣을 수 있습니다.

CSV 파일을 별도의 워크시트로 복사 및 붙여넣기

단계

  1. Microsoft Excel을 열고 새 통합 문서를 만듭니다.
  2. Excel을 사용하여 첫 번째 CSV 파일을 엽니다.
  3. 모든 데이터(Ctrl + A)를 선택하고 복사(Ctrl + C)합니다.
  4. 새 통합 문서로 돌아와 첫 번째 워크시트에 데이터를 붙여넣습니다.
  5. 필요한 경우 워크시트 이름을 바꿉니다.
  6. 나머지 각 CSV 파일에 대해 이 과정을 반복하며 매번 새 워크시트를 만듭니다.
  7. 통합 문서를 .xlsx 파일로 저장합니다.

장점

  • 프로그래밍이 필요 없음.
  • 모든 Excel 설치 환경에서 작동.
  • 워크시트당 하나의 CSV 유지.
  • 파일 수가 적은 가끔 발생하는 작업에 이상적.

단점

  • 많은 파일을 처리할 때 시간이 많이 소요됨.
  • 전적으로 수동 작업.
  • 수십 개의 CSV 파일을 다룰 때 실수하기 쉬움.

방법 2. VBA 매크로를 사용하여 여러 CSV 파일 가져오기

Excel 내에서 이 작업을 자주 수행한다면, VBA 매크로를 통해 전체 과정을 자동화할 수 있습니다. 매크로는 폴더를 스캔하고, 모든 CSV 파일을 열어 현재 통합 문서로 워크시트를 복사한 다음, CSV 파일 이름으로 워크시트 이름을 지정합니다.

VBA 매크로를 사용하여 Excel에서 여러 CSV 파일 결합

1단계. 빈 통합 문서 만들기

Excel을 열고 새 통합 문서를 만듭니다. 이 통합 문서는 가져온 모든 워크시트를 저장할 대상 통합 문서가 됩니다.

2단계. VBA 편집기 열기

Alt + F11을 눌러 Visual Basic 편집기를 엽니다.

삽입(Insert) > 모듈(Module)을 선택한 다음, 새 모듈에 다음 코드를 붙여넣습니다.

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("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 "CSV 파일이 성공적으로 병합되었습니다."

End Sub

3단계. 매크로 실행

F5를 누르고 CSV 파일이 있는 폴더를 입력하면 매크로가 자동으로 모든 CSV를 각각의 워크시트로 가져옵니다.

장점

  • 수동 복사보다 훨씬 빠름.
  • Microsoft Excel 내에서 완전히 실행됨.
  • 각 CSV 파일에 대해 자동으로 워크시트 생성.
  • Excel을 정기적으로 사용하는 사용자에게 적합.

단점

  • 매크로 사용 통합 문서가 필요함.
  • 사용자가 VBA 매크로를 활성화해야 함.
  • 무인 자동화나 서버 측 자동화에는 덜 적합함.

방법 3. Spire.XLS를 사용하여 Python에서 여러 CSV 파일 병합하기

반복되는 워크플로우, 예약된 작업 또는 비즈니스 애플리케이션의 경우 프로그래밍 방식의 자동화가 가장 효율적인 솔루션인 경우가 많습니다.

많은 개발자가 CSV 처리를 위해 Pandas를 즉시 떠올립니다. Pandas는 표 형식의 데이터를 읽고, 분석하고, 변환하는 데 탁월한 라이브러리입니다. 그러나 주된 초점은 문서 생성보다는 데이터 분석에 있습니다.

단순히 CSV 파일을 가져오는 것을 넘어 워크시트 서식 지정, 스타일 적용, 차트 삽입, 통합 문서 보호 또는 최종 통합 문서를 PDF로 내보내기와 같은 작업이 필요하다면 Free Spire.XLS for Python과 같은 스프레드시트 라이브러리가 더 완벽한 솔루션을 제공합니다.

먼저 라이브러리를 설치합니다:

pip install Spire.XLS

그런 다음 아래 코드를 사용하여 폴더 내의 모든 CSV 파일을 하나의 Excel 통합 문서로 병합하고, 각 CSV를 별도의 워크시트로 만듭니다.

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

input_folder = "input"
output_folder = "output"

# 대상 통합 문서 생성
merged_workbook = Workbook()
merged_workbook.Worksheets.Clear()

# 모든 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
)

출력:

Python을 사용하여 여러 CSV 파일을 하나의 Excel 통합 문서로 병합

수동 방식이나 VBA와 비교했을 때, 이 방식은 자동화된 워크플로우에 통합하기가 훨씬 쉽습니다. 통합 문서를 생성한 후 Spire.XLS를 사용하여 다음과 같은 작업을 계속할 수 있습니다:

  • 글꼴, 색상, 테두리 및 숫자 형식 적용.
  • 틀 고정 또는 열 너비 자동 조정.
  • 차트 및 피벗 테이블 생성.
  • 워크시트 또는 통합 문서 보호.
  • 완성된 통합 문서를 PDF 또는 기타 형식으로 내보내기.

이러한 기능 덕분에 CSV 병합뿐만 아니라 엔드투엔드 보고서 생성 파이프라인에도 적합합니다.

세 가지 방법 비교

방법 프로그래밍 필요 여부 일괄 처리 최적의 용도
복사 및 붙여넣기 아니요 제한적 CSV 파일이 몇 개뿐인 일회성 작업
VBA 매크로 기본 VBA CSV 파일을 정기적으로 가져오는 Excel 사용자
Python + Free Spire.XLS Python 우수함 자동화된 워크플로우, 비즈니스 애플리케이션 및 일괄 처리

결론

가장 좋은 방법은 해당 작업을 얼마나 자주 수행해야 하는지에 따라 다릅니다.

가끔 몇 개의 CSV 파일만 결합하면 된다면, 데이터를 수동으로 복사하여 별도의 워크시트에 붙여넣는 것이 가장 빠른 해결책입니다.

주로 Excel에서 작업하며 이 작업을 정기적으로 수행한다면, VBA 매크로를 통해 최소한의 노력으로 프로세스를 자동화할 수 있습니다.

반복 가능한 워크플로우를 구축하거나 애플리케이션에 CSV 처리를 통합하는 개발자에게는 Spire.XLS를 사용하는 Python이 가장 큰 유연성을 제공합니다. CSV 파일 병합을 넘어 고급 스프레드시트 조작 및 문서 생성이 가능하므로 다양한 자동화 시나리오에 적합합니다.

자주 묻는 질문(FAQ)

수백 개의 CSV 파일을 하나의 Excel 통합 문서로 병합할 수 있나요?

네. VBA도 많은 파일을 처리할 수 있지만, 매우 큰 일괄 작업이나 자동화된 워크플로우의 경우 Python 솔루션이 일반적으로 더 안정적이고 확장성이 뛰어납니다.

각 CSV 파일이 고유한 워크시트가 되나요?

네. 이 기사에서 설명한 세 가지 방법 모두 모든 데이터를 단일 시트로 결합하는 대신 각 CSV를 별도의 워크시트로 보존합니다.

워크시트 이름을 CSV 파일 이름으로 지정할 수 있나요?

네. VBA 매크로와 Python 예제 모두 자동으로 CSV 파일 이름(확장자 제외)을 워크시트 이름으로 사용합니다.

CSV 파일이 UTF-8 또는 다른 인코딩을 사용하는 경우는 어떻게 하나요?

대부분의 CSV 파일은 문제없이 가져올 수 있습니다. 파일이 다른 인코딩이나 구분 기호를 사용하는 경우, 처리하기 전에 가져오기 설정을 적절히 조정하십시오.

CSV 파일을 병합한 후에도 통합 문서를 계속 편집할 수 있나요?

물론입니다. 통합 문서가 생성된 후에는 다른 Excel 파일과 마찬가지로 워크시트 서식 지정, 차트 삽입, 수식 추가, 통합 문서 보호 또는 PDF로 내보내기가 가능합니다.

참고 항목

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

Fusionner plusieurs fichiers CSV dans un seul classeur Excel

Lorsque vous travaillez avec des rapports exportés depuis différents systèmes, il est courant de se retrouver avec des dizaines de fichiers CSV. Par exemple, chaque département, magasin ou mois peut générer son propre rapport CSV. Bien que cela facilite la collecte de données, la gestion d'un grand nombre de fichiers séparés devient rapidement fastidieuse.

Une solution pratique consiste à combiner tous les fichiers CSV dans un seul classeur Excel, tout en conservant chaque CSV dans une feuille de calcul distincte. Cela préserve la structure originale des fichiers, facilite la navigation et vous permet de partager un seul classeur au lieu de plusieurs fichiers individuels.

Dans cet article, nous présenterons trois méthodes pratiques, allant d'une approche manuelle simple à l'automatisation Excel avec VBA et une solution entièrement programmatique en Python.

Méthodes couvertes :

Méthode 1. Copier et coller des fichiers CSV dans des feuilles de calcul distinctes

Si vous n'avez que quelques fichiers CSV à fusionner, la solution la plus simple consiste à copier manuellement leur contenu dans différentes feuilles de calcul.

Un détail important est que vous devez ouvrir chaque fichier CSV avec Microsoft Excel plutôt qu'avec un éditeur de texte tel que le Bloc-notes. Lorsqu'un CSV est ouvert dans Excel, ses lignes et colonnes sont analysées correctement en fonction du délimiteur. Si vous copiez le texte directement depuis le Bloc-notes, Excel risque de coller tout le contenu dans une seule colonne au lieu de séparer les valeurs automatiquement.

Copier et coller des fichiers CSV dans des feuilles de calcul distinctes

Étapes

  1. Ouvrez Microsoft Excel et créez un nouveau classeur.
  2. Ouvrez le premier fichier CSV en utilisant Excel.
  3. Sélectionnez toutes les données (Ctrl + A) et copiez-les (Ctrl + C).
  4. Revenez au nouveau classeur et collez les données dans la première feuille de calcul.
  5. Renommez la feuille de calcul si nécessaire.
  6. Répétez le processus pour chaque fichier CSV restant, en créant une nouvelle feuille de calcul à chaque fois.
  7. Enregistrez le classeur en tant que fichier .xlsx.

Avantages

  • Aucune programmation requise.
  • Fonctionne sur toutes les installations d'Excel.
  • Préserve un CSV par feuille de calcul.
  • Idéal pour les tâches occasionnelles impliquant seulement quelques fichiers.

Inconvénients

  • Chronophage lors du traitement de nombreux fichiers.
  • Entièrement manuel.
  • Risque d'erreurs lors de la manipulation de dizaines de fichiers CSV.

Méthode 2. Utiliser une macro VBA pour importer plusieurs fichiers CSV

Si vous effectuez fréquemment cette tâche dans Excel, une macro VBA peut automatiser l'ensemble du processus. La macro analyse un dossier, ouvre chaque fichier CSV, copie sa feuille de calcul dans le classeur actuel et nomme la feuille d'après le nom du fichier CSV.

Combiner plusieurs fichiers CSV dans Excel à l'aide d'une macro VBA

Étape 1. Créer un classeur vierge

Ouvrez Excel et créez un nouveau classeur. Ce classeur deviendra le classeur de destination qui stockera toutes les feuilles de calcul importées.

Étape 2. Ouvrir l'éditeur VBA

Appuyez sur Alt + F11 pour ouvrir l'éditeur Visual Basic.

Choisissez Insertion > Module, puis collez le code suivant dans le nouveau module.

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("Entrez le chemin du dossier contenant les fichiers 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 "Les fichiers CSV ont été fusionnés avec succès."

End Sub

Étape 3. Exécuter la macro

Appuyez sur F5, entrez le dossier contenant vos fichiers CSV, et la macro importera automatiquement chaque CSV dans sa propre feuille de calcul.

Avantages

  • Beaucoup plus rapide que la copie manuelle.
  • S'exécute entièrement dans Microsoft Excel.
  • Crée automatiquement une feuille de calcul pour chaque fichier CSV.
  • Adapté aux utilisateurs qui travaillent régulièrement avec Excel.

Inconvénients

  • Nécessite des classeurs prenant en charge les macros.
  • Les utilisateurs doivent activer les macros VBA.
  • Moins adapté à une automatisation sans surveillance ou côté serveur.

Méthode 3. Fusionner plusieurs fichiers CSV en Python avec Spire.XLS

Pour les flux de travail récurrents, les tâches planifiées ou les applications métier, l'automatisation par programmation est souvent la solution la plus efficace.

De nombreux développeurs pensent immédiatement à Pandas pour le traitement CSV. Pandas est une excellente bibliothèque pour lire, analyser et transformer des données tabulaires. Cependant, son objectif principal est l'analyse de données plutôt que la génération de documents.

Si votre flux de travail va au-delà de la simple importation de fichiers CSV — par exemple, le formatage des feuilles de calcul, l'application de styles, l'insertion de graphiques, la protection des classeurs ou l'exportation du classeur final en PDF — une bibliothèque de feuilles de calcul telle que Free Spire.XLS for Python offre une solution plus complète.

Tout d'abord, installez la bibliothèque :

pip install Spire.XLS

Utilisez ensuite le code suivant pour fusionner chaque fichier CSV d'un dossier dans un seul classeur Excel, chaque CSV devenant une feuille de calcul distincte.

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

input_folder = "input"
output_folder = "output"

# Créer le classeur de destination
merged_workbook = Workbook()
merged_workbook.Worksheets.Clear()

# Traiter chaque fichier 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
)

Résultat :

Fusionner plusieurs fichiers CSV dans un seul classeur Excel en utilisant Python

Comparée aux méthodes manuelles ou VBA, cette approche est beaucoup plus facile à intégrer dans des flux de travail automatisés. Après avoir généré le classeur, vous pouvez continuer à le traiter avec Spire.XLS — par exemple :

  • Appliquer des polices, des couleurs, des bordures et des formats numériques.
  • Figer les volets ou ajuster automatiquement la largeur des colonnes.
  • Créer des graphiques et des tableaux croisés dynamiques.
  • Protéger les feuilles de calcul ou le classeur.
  • Exporter le classeur terminé en PDF ou dans d'autres formats.

Ces capacités le rendent adapté non seulement à la fusion de CSV, mais aussi aux pipelines de génération de rapports de bout en bout.

Comparaison des trois méthodes

Méthode Programmation requise Traitement par lots Idéal pour
Copier-coller Non Limité Tâches ponctuelles avec seulement quelques fichiers CSV
Macro VBA VBA de base Oui Utilisateurs Excel qui importent régulièrement des fichiers CSV
Python + Free Spire.XLS Python Excellent Flux de travail automatisés, applications métier et traitement par lots

Conclusion

La meilleure méthode dépend de la fréquence à laquelle vous devez effectuer la tâche.

Si vous n'avez besoin de combiner que quelques fichiers CSV occasionnellement, copier et coller manuellement les données dans des feuilles de calcul distinctes est la solution la plus rapide.

Si vous travaillez principalement dans Excel et effectuez cette tâche régulièrement, une macro VBA peut automatiser le processus avec un effort minimal.

Pour les développeurs qui construisent des flux de travail répétables ou qui intègrent le traitement CSV dans des applications, Python avec Spire.XLS offre la plus grande flexibilité. Au-delà de la fusion de fichiers CSV, il permet une manipulation avancée des feuilles de calcul et une génération de documents, ce qui le rend adapté à un large éventail de scénarios d'automatisation.

FAQ

Puis-je fusionner des centaines de fichiers CSV dans un seul classeur Excel ?

Oui. VBA peut gérer de nombreux fichiers, mais pour de très grands lots ou des flux de travail automatisés, une solution Python est généralement plus fiable et évolutive.

Chaque fichier CSV deviendra-t-il sa propre feuille de calcul ?

Oui. Les trois méthodes décrites dans cet article conservent chaque CSV comme une feuille de calcul distincte au lieu de combiner toutes les données dans une seule feuille.

Les noms des feuilles de calcul peuvent-ils être basés sur les noms des fichiers CSV ?

Oui. La macro VBA et l'exemple Python utilisent automatiquement le nom du fichier CSV (sans l'extension) comme nom de feuille de calcul.

Que faire si mes fichiers CSV utilisent l'encodage UTF-8 ou d'autres encodages ?

La plupart des fichiers CSV peuvent être importés sans problème. Si vos fichiers utilisent un encodage ou un délimiteur différent, ajustez les paramètres d'importation en conséquence avant le traitement.

Puis-je continuer à modifier le classeur après avoir fusionné les fichiers CSV ?

Absolument. Une fois le classeur créé, vous pouvez formater les feuilles de calcul, insérer des graphiques, ajouter des formules, protéger le classeur ou l'exporter en PDF comme n'importe quel autre fichier Excel.

Voir aussi

Combinar múltiples archivos CSV en un libro de Excel

Al trabajar con informes exportados desde diferentes sistemas, es común terminar con docenas de archivos CSV. Por ejemplo, cada departamento, tienda o mes puede generar su propio informe CSV. Si bien esto facilita la recopilación de datos, gestionar una gran cantidad de archivos separados se vuelve inconveniente rápidamente.

Una solución práctica es combinar todos los archivos CSV en un solo libro de Excel, manteniendo cada CSV como una hoja de cálculo separada. Esto preserva la estructura original del archivo, facilita la navegación y le permite compartir un solo libro en lugar de múltiples archivos individuales.

En este artículo, presentaremos tres métodos prácticos, desde un enfoque manual sencillo hasta la automatización de Excel con VBA y una solución totalmente programática en Python.

Métodos cubiertos:

Método 1. Copiar y pegar archivos CSV en hojas de cálculo separadas

Si solo tiene unos pocos archivos CSV para combinar, la solución más sencilla es copiar su contenido en diferentes hojas de cálculo manualmente.

Un detalle importante es que debe abrir cada archivo CSV con Microsoft Excel en lugar de un editor de texto como el Bloc de notas. Cuando un CSV se abre en Excel, sus filas y columnas se analizan correctamente según el delimitador. Si copia el texto directamente desde el Bloc de notas, Excel puede pegar todo en una sola columna en lugar de separar los valores automáticamente.

Copiar y pegar archivos CSV en hojas de cálculo separadas

Pasos

  1. Abra Microsoft Excel y cree un nuevo libro.
  2. Abra el primer archivo CSV usando Excel.
  3. Seleccione todos los datos (Ctrl + A) y cópielos (Ctrl + C).
  4. Regrese al nuevo libro y pegue los datos en la primera hoja de cálculo.
  5. Cambie el nombre de la hoja de cálculo si es necesario.
  6. Repita el proceso para cada archivo CSV restante, creando una nueva hoja de cálculo cada vez.
  7. Guarde el libro como un archivo .xlsx.

Ventajas

  • No requiere programación.
  • Funciona en todas las instalaciones de Excel.
  • Preserva un CSV por hoja de cálculo.
  • Ideal para tareas ocasionales que involucran solo unos pocos archivos.

Desventajas

  • Consume mucho tiempo al procesar muchos archivos.
  • Completamente manual.
  • Es fácil cometer errores al manejar docenas de archivos CSV.

Método 2. Usar una macro de VBA para importar múltiples archivos CSV

Si realiza esta tarea con frecuencia dentro de Excel, una macro de VBA puede automatizar todo el proceso. La macro escanea una carpeta, abre cada archivo CSV, copia su hoja de cálculo en el libro actual y nombra la hoja según el archivo CSV.

Combinar múltiples archivos CSV en Excel usando una macro de VBA

Paso 1. Crear un libro en blanco

Abra Excel y cree un nuevo libro. Este libro se convertirá en el libro de destino que almacena todas las hojas de cálculo importadas.

Paso 2. Abrir el editor de VBA

Presione Alt + F11 para abrir el Editor de Visual Basic.

Elija Insertar > Módulo y luego pegue el siguiente código en el nuevo módulo.

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("Ingrese la ruta de la carpeta que contiene los archivos 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 "Los archivos CSV se han combinado correctamente."

End Sub

Paso 3. Ejecutar la macro

Presione F5, ingrese la carpeta que contiene sus archivos CSV y la macro importará automáticamente cada CSV en su propia hoja de cálculo.

Ventajas

  • Mucho más rápido que copiar manualmente.
  • Se ejecuta completamente dentro de Microsoft Excel.
  • Crea automáticamente una hoja de cálculo para cada archivo CSV.
  • Adecuado para usuarios que trabajan regularmente con Excel.

Desventajas

  • Requiere libros habilitados para macros.
  • Los usuarios deben habilitar las macros de VBA.
  • Menos adecuado para la automatización desatendida o del lado del servidor.

Método 3. Combinar múltiples archivos CSV en Python usando Spire.XLS

Para flujos de trabajo recurrentes, trabajos programados o aplicaciones empresariales, la automatización programática suele ser la solución más eficiente.

Muchos desarrolladores piensan inmediatamente en Pandas para el procesamiento de CSV. Pandas es una excelente biblioteca para leer, analizar y transformar datos tabulares. Sin embargo, su enfoque principal es el análisis de datos más que la generación de documentos.

Si su flujo de trabajo va más allá de simplemente importar archivos CSV (por ejemplo, dar formato a hojas de cálculo, aplicar estilos, insertar gráficos, proteger libros o exportar el libro final a PDF), una biblioteca de hojas de cálculo como Free Spire.XLS for Python ofrece una solución más completa.

Primero, instale la biblioteca:

pip install Spire.XLS

Luego, use el siguiente código para combinar cada archivo CSV en una carpeta en un solo libro de Excel, donde cada CSV se convierte en una hoja de cálculo separada.

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

input_folder = "input"
output_folder = "output"

# Crear el libro de destino
merged_workbook = Workbook()
merged_workbook.Worksheets.Clear()

# Procesar cada archivo 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
)

Salida:

Combinar múltiples archivos CSV en un libro de Excel usando Python

En comparación con los métodos manuales o VBA, este enfoque es mucho más fácil de integrar en flujos de trabajo automatizados. Después de generar el libro, puede continuar procesándolo con Spire.XLS, por ejemplo:

  • Aplicar fuentes, colores, bordes y formatos numéricos.
  • Inmovilizar paneles o ajustar el ancho de las columnas automáticamente.
  • Crear gráficos y tablas dinámicas.
  • Proteger hojas de cálculo o el libro.
  • Exportar el libro completado a PDF u otros formatos.

Estas capacidades lo hacen adecuado no solo para combinar CSV, sino también para canales de generación de informes de extremo a extremo.

Comparación de los tres métodos

Método Requiere programación Procesamiento por lotes Mejor para
Copiar y pegar No Limitado Tareas únicas con solo unos pocos archivos CSV
Macro de VBA VBA básico Usuarios de Excel que importan archivos CSV regularmente
Python + Free Spire.XLS Python Excelente Flujos de trabajo automatizados, aplicaciones empresariales y procesamiento por lotes

Conclusión

El mejor método depende de la frecuencia con la que necesite realizar la tarea.

Si solo necesita combinar unos pocos archivos CSV ocasionalmente, copiar y pegar manualmente los datos en hojas de cálculo separadas es la solución más rápida.

Si trabaja principalmente en Excel y realiza esta tarea regularmente, una macro de VBA puede automatizar el proceso con un esfuerzo mínimo.

Para los desarrolladores que crean flujos de trabajo repetibles o integran el procesamiento de CSV en aplicaciones, Python con Spire.XLS ofrece la mayor flexibilidad. Más allá de combinar archivos CSV, permite una manipulación avanzada de hojas de cálculo y la generación de documentos, lo que lo hace adecuado para una amplia gama de escenarios de automatización.

Preguntas frecuentes

¿Puedo combinar cientos de archivos CSV en un solo libro de Excel?

Sí. VBA puede manejar muchos archivos, pero para lotes muy grandes o flujos de trabajo automatizados, una solución en Python es generalmente más confiable y escalable.

¿Cada archivo CSV se convertirá en su propia hoja de cálculo?

Sí. Los tres métodos descritos en este artículo preservan cada CSV como una hoja de cálculo separada en lugar de combinar todos los datos en una sola hoja.

¿Pueden los nombres de las hojas de cálculo basarse en los nombres de los archivos CSV?

Sí. Tanto la macro de VBA como el ejemplo de Python utilizan automáticamente el nombre del archivo CSV (sin la extensión) como nombre de la hoja de cálculo.

¿Qué pasa si mis archivos CSV usan UTF-8 u otras codificaciones?

La mayoría de los archivos CSV se pueden importar sin problemas. Si sus archivos usan una codificación o un delimitador diferente, ajuste la configuración de importación en consecuencia antes de procesarlos.

¿Puedo seguir editando el libro después de combinar los archivos CSV?

Absolutamente. Una vez creado el libro, puede dar formato a las hojas de cálculo, insertar gráficos, agregar fórmulas, proteger el libro o exportarlo a PDF como cualquier otro archivo de Excel.

Ver también

Mehrere CSV-Dateien in einer Excel-Arbeitsmappe zusammenführen

Wenn Sie mit Berichten arbeiten, die aus verschiedenen Systemen exportiert wurden, haben Sie es häufig mit Dutzenden von CSV-Dateien zu tun. Beispielsweise kann jede Abteilung, jede Filiale oder jeder Monat einen eigenen CSV-Bericht generieren. Während dies die Datenerfassung vereinfacht, wird die Verwaltung einer großen Anzahl separater Dateien schnell unhandlich.

Eine praktische Lösung besteht darin, alle CSV-Dateien in einer Excel-Arbeitsmappe zu kombinieren, wobei jede CSV-Datei als separates Arbeitsblatt erhalten bleibt. Dies bewahrt die ursprüngliche Dateistruktur, erleichtert die Navigation und ermöglicht es Ihnen, eine einzige Arbeitsmappe anstelle vieler einzelner Dateien weiterzugeben.

In diesem Artikel stellen wir drei praktische Methoden vor – von einem einfachen manuellen Ansatz über die Excel-Automatisierung mit VBA bis hin zu einer vollständig programmatischen Python-Lösung.

Behandelte Methoden:

Methode 1. CSV-Dateien kopieren und in separate Arbeitsblätter einfügen

Wenn Sie nur wenige CSV-Dateien zusammenführen müssen, ist die einfachste Lösung, deren Inhalte manuell in verschiedene Arbeitsblätter zu kopieren.

Ein wichtiges Detail ist, dass Sie jede CSV-Datei mit Microsoft Excel öffnen sollten, anstatt mit einem Texteditor wie Notepad. Wenn eine CSV-Datei in Excel geöffnet wird, werden ihre Zeilen und Spalten basierend auf dem Trennzeichen korrekt analysiert. Wenn Sie den Text direkt aus Notepad kopieren, fügt Excel möglicherweise alles in eine einzige Spalte ein, anstatt die Werte automatisch zu trennen.

CSV-Dateien kopieren und in separate Arbeitsblätter einfügen

Schritte

  1. Öffnen Sie Microsoft Excel und erstellen Sie eine neue Arbeitsmappe.
  2. Öffnen Sie die erste CSV-Datei mit Excel.
  3. Markieren Sie alle Daten (Strg + A) und kopieren Sie diese (Strg + C).
  4. Kehren Sie zur neuen Arbeitsmappe zurück und fügen Sie die Daten in das erste Arbeitsblatt ein.
  5. Benennen Sie das Arbeitsblatt bei Bedarf um.
  6. Wiederholen Sie den Vorgang für jede weitere CSV-Datei und erstellen Sie jedes Mal ein neues Arbeitsblatt.
  7. Speichern Sie die Arbeitsmappe als .xlsx-Datei.

Vorteile

  • Keine Programmierung erforderlich.
  • Funktioniert in jeder Excel-Installation.
  • Behält eine CSV-Datei pro Arbeitsblatt bei.
  • Ideal für gelegentliche Aufgaben mit nur wenigen Dateien.

Nachteile

  • Zeitaufwendig bei der Verarbeitung vieler Dateien.
  • Rein manuell.
  • Fehleranfällig bei der Handhabung von Dutzenden von CSV-Dateien.

Methode 2. Verwendung eines VBA-Makros zum Importieren mehrerer CSV-Dateien

Wenn Sie diese Aufgabe häufig in Excel ausführen, kann ein VBA-Makro den gesamten Prozess automatisieren. Das Makro durchsucht einen Ordner, öffnet jede CSV-Datei, kopiert deren Arbeitsblatt in die aktuelle Arbeitsmappe und benennt das Arbeitsblatt nach der CSV-Datei.

Mehrere CSV-Dateien in Excel mit einem VBA-Makro kombinieren

Schritt 1. Eine leere Arbeitsmappe erstellen

Öffnen Sie Excel und erstellen Sie eine neue Arbeitsmappe. Diese Arbeitsmappe dient als Ziel-Arbeitsmappe, in der alle importierten Arbeitsblätter gespeichert werden.

Schritt 2. Den VBA-Editor öffnen

Drücken Sie Alt + F11, um den Visual Basic-Editor zu öffnen.

Wählen Sie Einfügen > Modul und fügen Sie den folgenden Code in das neue Modul ein.

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("Geben Sie den Ordnerpfad mit den CSV-Dateien ein:")

    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 "CSV-Dateien wurden erfolgreich zusammengeführt."

End Sub

Schritt 3. Das Makro ausführen

Drücken Sie F5, geben Sie den Ordner mit Ihren CSV-Dateien ein, und das Makro importiert automatisch jede CSV-Datei in ein eigenes Arbeitsblatt.

Vorteile

  • Viel schneller als manuelles Kopieren.
  • Läuft vollständig innerhalb von Microsoft Excel.
  • Erstellt automatisch ein Arbeitsblatt für jede CSV-Datei.
  • Geeignet für Benutzer, die regelmäßig mit Excel arbeiten.

Nachteile

  • Erfordert makrofähige Arbeitsmappen.
  • Benutzer müssen VBA-Makros aktivieren.
  • Weniger geeignet für unbeaufsichtigte oder serverseitige Automatisierung.

Methode 3. Zusammenführen mehrerer CSV-Dateien in Python mit Spire.XLS

Für wiederkehrende Arbeitsabläufe, geplante Aufgaben oder Geschäftsanwendungen ist die programmatische Automatisierung oft die effizienteste Lösung.

Viele Entwickler denken bei der CSV-Verarbeitung sofort an Pandas. Pandas ist eine hervorragende Bibliothek zum Lesen, Analysieren und Transformieren tabellarischer Daten. Ihr Hauptfokus liegt jedoch auf der Datenanalyse und nicht auf der Dokumentenerstellung.

Wenn Ihr Arbeitsablauf über das bloße Importieren von CSV-Dateien hinausgeht – zum Beispiel Arbeitsblätter formatieren, Stile anwenden, Diagramme einfügen, Arbeitsmappen schützen oder die fertige Arbeitsmappe als PDF exportieren –, bietet eine Tabellenkalkulationsbibliothek wie Free Spire.XLS for Python eine vollständigere Lösung.

Installieren Sie zunächst die Bibliothek:

pip install Spire.XLS

Verwenden Sie dann den folgenden Code, um jede CSV-Datei in einem Ordner in einer einzigen Excel-Arbeitsmappe zusammenzuführen, wobei jede CSV-Datei zu einem separaten Arbeitsblatt wird.

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

input_folder = "input"
output_folder = "output"

# Ziel-Arbeitsmappe erstellen
merged_workbook = Workbook()
merged_workbook.Worksheets.Clear()

# Jede CSV-Datei verarbeiten
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
)

Ausgabe:

Mehrere CSV-Dateien in Excel mit Python zusammenführen

Im Vergleich zu manuellen Methoden oder VBA lässt sich dieser Ansatz viel einfacher in automatisierte Arbeitsabläufe integrieren. Nach dem Generieren der Arbeitsmappe können Sie diese mit Spire.XLS weiterverarbeiten – zum Beispiel:

  • Schriftarten, Farben, Rahmen und Zahlenformate anwenden.
  • Fenster fixieren oder Spaltenbreiten automatisch anpassen.
  • Diagramme und Pivot-Tabellen erstellen.
  • Arbeitsblätter oder die Arbeitsmappe schützen.
  • Die fertige Arbeitsmappe in PDF oder andere Formate exportieren.

Diese Funktionen machen es nicht nur für das Zusammenführen von CSV-Dateien geeignet, sondern auch für End-to-End-Berichterstellungspipelines.

Vergleich der drei Methoden

Methode Programmierung erforderlich Stapelverarbeitung Am besten geeignet für
Kopieren und Einfügen Nein Begrenzt Einmalige Aufgaben mit nur wenigen CSV-Dateien
VBA-Makro Grundlegendes VBA Ja Excel-Benutzer, die regelmäßig CSV-Dateien importieren
Python + Free Spire.XLS Python Hervorragend Automatisierte Arbeitsabläufe, Geschäftsanwendungen und Stapelverarbeitung

Fazit

Die beste Methode hängt davon ab, wie oft Sie die Aufgabe ausführen müssen.

Wenn Sie nur gelegentlich einige CSV-Dateien kombinieren müssen, ist das manuelle Kopieren und Einfügen der Daten in separate Arbeitsblätter die schnellste Lösung.

Wenn Sie hauptsächlich in Excel arbeiten und diese Aufgabe regelmäßig ausführen, kann ein VBA-Makro den Prozess mit minimalem Aufwand automatisieren.

Für Entwickler, die wiederholbare Arbeitsabläufe erstellen oder die CSV-Verarbeitung in Anwendungen integrieren, bietet Python mit Spire.XLS die größte Flexibilität. Über das Zusammenführen von CSV-Dateien hinaus ermöglicht es eine erweiterte Tabellenkalkulationsbearbeitung und Dokumentenerstellung, was es für eine Vielzahl von Automatisierungsszenarien geeignet macht.

Häufig gestellte Fragen (FAQs)

Kann ich Hunderte von CSV-Dateien in einer Excel-Arbeitsmappe zusammenführen?

Ja. VBA kann viele Dateien verarbeiten, aber für sehr große Stapel oder automatisierte Arbeitsabläufe ist eine Python-Lösung im Allgemeinen zuverlässiger und skalierbarer.

Wird jede CSV-Datei zu einem eigenen Arbeitsblatt?

Ja. Alle drei in diesem Artikel beschriebenen Methoden bewahren jede CSV-Datei als separates Arbeitsblatt, anstatt alle Daten in einem einzigen Blatt zu kombinieren.

Können die Namen der Arbeitsblätter auf den CSV-Dateinamen basieren?

Ja. Sowohl das VBA-Makro als auch das Python-Beispiel verwenden automatisch den CSV-Dateinamen (ohne Erweiterung) als Namen für das Arbeitsblatt.

Was ist, wenn meine CSV-Dateien UTF-8 oder andere Kodierungen verwenden?

Die meisten CSV-Dateien können problemlos importiert werden. Wenn Ihre Dateien eine andere Kodierung oder ein anderes Trennzeichen verwenden, passen Sie die Importeinstellungen vor der Verarbeitung entsprechend an.

Kann ich die Arbeitsmappe nach dem Zusammenführen der CSV-Dateien weiter bearbeiten?

Absolut. Nachdem die Arbeitsmappe erstellt wurde, können Sie Arbeitsblätter formatieren, Diagramme einfügen, Formeln hinzufügen, die Arbeitsmappe schützen oder sie wie jede andere Excel-Datei als PDF exportieren.

Siehe auch

Объединение нескольких CSV-файлов в одну книгу Excel

При работе с отчетами, выгруженными из различных систем, часто приходится иметь дело с десятками CSV-файлов. Например, каждый отдел, магазин или месяц может генерировать свой собственный CSV-отчет. Хотя это упрощает сбор данных, управление большим количеством отдельных файлов быстро становится неудобным.

Практичное решение — объединить все CSV-файлы в одну книгу Excel, сохранив каждый CSV на отдельном листе. Это позволяет сохранить структуру исходных файлов, упрощает навигацию и дает возможность делиться одним файлом книги вместо множества отдельных документов.

В этой статье мы представим три практических метода: от простого ручного подхода до автоматизации Excel с помощью VBA и полноценного программного решения на Python.

Рассматриваемые методы:

Способ 1. Копирование и вставка CSV-файлов на отдельные листы

Если вам нужно объединить всего несколько CSV-файлов, самое простое решение — скопировать их содержимое на разные листы вручную.

Важная деталь: открывайте каждый CSV-файл через Microsoft Excel, а не через текстовый редактор, такой как Блокнот. Когда CSV открывается в Excel, строки и столбцы правильно распознаются на основе разделителя. Если вы скопируете текст напрямую из Блокнота, Excel может вставить всё в один столбец вместо автоматического разделения значений.

Копирование и вставка CSV-файлов на отдельные листы

Шаги

  1. Откройте Microsoft Excel и создайте новую книгу.
  2. Откройте первый CSV-файл с помощью Excel.
  3. Выделите все данные (Ctrl + A) и скопируйте их (Ctrl + C).
  4. Вернитесь в новую книгу и вставьте данные на первый лист.
  5. При необходимости переименуйте лист.
  6. Повторите процесс для каждого оставшегося CSV-файла, каждый раз создавая новый лист.
  7. Сохраните книгу как файл .xlsx.

Плюсы

  • Не требуется программирование.
  • Работает в любой версии Excel.
  • Сохраняет один CSV на лист.
  • Идеально подходит для разовых задач с небольшим количеством файлов.

Минусы

  • Занимает много времени при обработке большого количества файлов.
  • Полностью ручной процесс.
  • Легко допустить ошибку при работе с десятками CSV-файлов.

Способ 2. Использование VBA-макроса для импорта нескольких CSV-файлов

Если вы часто выполняете эту задачу в Excel, VBA-макрос может автоматизировать весь процесс. Макрос сканирует папку, открывает каждый CSV-файл, копирует его лист в текущую книгу и называет лист в соответствии с именем CSV-файла.

Объединение нескольких CSV-файлов в Excel с помощью VBA-макроса

Шаг 1. Создание пустой книги

Откройте Excel и создайте новую книгу. Эта книга станет целевой, в которой будут храниться все импортированные листы.

Шаг 2. Открытие редактора VBA

Нажмите Alt + F11, чтобы открыть редактор Visual Basic.

Выберите Insert > Module, затем вставьте следующий код в новый модуль.

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("Введите путь к папке с 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 "CSV-файлы успешно объединены."

End Sub

Шаг 3. Запуск макроса

Нажмите F5, введите путь к папке с вашими CSV-файлами, и макрос автоматически импортирует каждый CSV на отдельный лист.

Плюсы

  • Намного быстрее ручного копирования.
  • Работает полностью внутри Microsoft Excel.
  • Автоматически создает отдельный лист для каждого CSV-файла.
  • Подходит для пользователей, регулярно работающих с Excel.

Минусы

  • Требует использования книг с поддержкой макросов.
  • Пользователи должны разрешить выполнение VBA-макросов.
  • Менее подходит для автоматизации без участия пользователя или на стороне сервера.

Способ 3. Объединение нескольких CSV-файлов на Python с помощью Spire.XLS

Для повторяющихся рабочих процессов, запланированных задач или бизнес-приложений программная автоматизация часто является наиболее эффективным решением.

Многие разработчики сразу вспоминают о Pandas для обработки CSV. Pandas — отличная библиотека для чтения, анализа и преобразования табличных данных. Однако её основная цель — анализ данных, а не создание документов.

Если ваш рабочий процесс выходит за рамки простого импорта CSV-файлов — например, включает форматирование листов, применение стилей, вставку диаграмм, защиту книг или экспорт итоговой книги в PDF — библиотека для работы с электронными таблицами, такая как Free Spire.XLS for Python, предлагает более полное решение.

Сначала установите библиотеку:

pip install Spire.XLS

Затем используйте следующий код для объединения всех CSV-файлов из папки в одну книгу Excel, где каждый CSV станет отдельным листом.

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

input_folder = "input"
output_folder = "output"

# Создание целевой книги
merged_workbook = Workbook()
merged_workbook.Worksheets.Clear()

# Обработка каждого 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
)

Результат:

Объединение нескольких CSV-файлов в одну книгу Excel с помощью Python

По сравнению с ручными методами или VBA, этот подход гораздо проще интегрировать в автоматизированные рабочие процессы. После создания книги вы можете продолжить обработку с помощью Spire.XLS, например:

  • Применять шрифты, цвета, границы и форматы чисел.
  • Закреплять области или автоматически настраивать ширину столбцов.
  • Создавать диаграммы и сводные таблицы.
  • Защищать листы или всю книгу.
  • Экспортировать готовую книгу в PDF или другие форматы.

Эти возможности делают библиотеку подходящей не только для объединения CSV, но и для полноценных конвейеров генерации отчетов.

Сравнение трех способов

Способ Требуется программирование Пакетная обработка Лучше всего подходит для
Копирование и вставка Нет Ограниченно Разовые задачи с небольшим количеством CSV-файлов
VBA-макрос Базовый VBA Да Пользователей Excel, регулярно импортирующих CSV-файлы
Python + Free Spire.XLS Python Отлично Автоматизированных рабочих процессов, бизнес-приложений и пакетной обработки

Заключение

Выбор лучшего метода зависит от того, как часто вам нужно выполнять эту задачу.

Если вам нужно объединить всего несколько CSV-файлов время от времени, ручное копирование и вставка данных на отдельные листы — самое быстрое решение.

Если вы работаете преимущественно в Excel и выполняете эту задачу регулярно, VBA-макрос поможет автоматизировать процесс с минимальными усилиями.

Для разработчиков, создающих повторяющиеся рабочие процессы или интегрирующих обработку CSV в приложения, Python со Spire.XLS предлагает наибольшую гибкость. Помимо объединения CSV-файлов, это позволяет выполнять расширенное манипулирование электронными таблицами и генерацию документов, что делает его пригодным для широкого спектра сценариев автоматизации.

Часто задаваемые вопросы

Можно ли объединить сотни CSV-файлов в одну книгу Excel?

Да. VBA может справиться со многими файлами, но для очень больших пакетов или автоматизированных рабочих процессов решение на Python, как правило, более надежно и масштабируемо.

Станет ли каждый CSV-файл отдельным листом?

Да. Все три метода, описанные в этой статье, сохраняют каждый CSV как отдельный лист, а не объединяют все данные на один лист.

Могут ли названия листов основываться на именах CSV-файлов?

Да. И VBA-макрос, и пример на Python автоматически используют имя CSV-файла (без расширения) в качестве названия листа.

Что делать, если мои CSV-файлы используют кодировку UTF-8 или другую?

Большинство CSV-файлов можно импортировать без проблем. Если ваши файлы используют другую кодировку или разделитель, настройте параметры импорта перед обработкой.

Можно ли продолжать редактирование книги после объединения CSV-файлов?

Безусловно. После создания книги вы можете форматировать листы, вставлять диаграммы, добавлять формулы, защищать книгу или экспортировать ее в PDF, как и любой другой файл Excel.

Смотрите также