Cómo editar metadatos de libro de trabajo en C#

Cómo editar metadatos de libros de Excel en C#

This article was translated from English: Does it need improvement?
Translated
View the article in English

Edite metadatos de Excel en C# utilizando la propiedad Metadata de IronXL para establecer mediante programación autor, título, palabras clave y otras propiedades de documentos sin Microsoft Interop, lo que permite la organización automatizada de hojas de cálculo y la capacidad de búsqueda.

Los metadatos de una hoja de cálculo de Excel incluyen información sobre el `título, autor, tema, palabras clave, fecha de creación, fecha de modificación y otros detalles relevantes. Los metadatos proporcionan contexto y ayudan a organizar y categorizar las hojas de cálculo. Simplifican la búsqueda y gestión de archivos, especialmente cuando se trabaja con múltiples archivos de hojas de cálculo. Tanto si estás creando nuevas hojas de cálculo como si estás cargando libros de trabajo existentes, IronXL hace que la gestión de metadatos sea perfecta.

Inicio rápido: Editar metadatos del libro de trabajo en un solo paso fácil

Establezca, modifique y guarde propiedades como Título, Autor o Palabras clave utilizando la interfaz de metadatos de IronXL. No necesitas Interop: comienza al instante con solo unas pocas líneas de código C# limpio e intuitivo.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronXL con el gestor de paquetes NuGet

    PM > Install-Package IronXL.Excel

  2. Copie y ejecute este fragmento de código.

    IronXL.WorkBook.Load("input.xlsx").Metadata.Title = "Financial Summary";
    // Then save your update to a new file
    IronXL.WorkBook.Load("input.xlsx").SaveAs("output.xlsx");
  3. Despliegue para probar en su entorno real

    Empieza a utilizar IronXL en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer

¿Cómo edito las propiedades de los metadatos de los libros de trabajo?

Para editar el nombre del autor de un archivo de hoja de cálculo, establece la propiedad Autorcon la cadena de datos deseada. Por ejemplo, workBook.Metadata.Author = "Tu Nombre". La información de metadatos disponible en la propiedad Metadata de la clase WorkBook puede ser accesada y recuperada. Este enfoque funciona a la perfección con varios tipos de archivo hoja de cálculo, incluidos los formatos XLSX, XLS y CSV.

¿Qué propiedades puedo modificar mediante programación?

:path=/static-assets/excel/content-code-examples/how-to/edit-workbook-metadata.cs
using IronXL;
using System;

WorkBook workBook = WorkBook.Load("sample.xlsx");

// Set author
workBook.Metadata.Author = "Your Name";
// Set comments
workBook.Metadata.Comments = "Monthly report";
// Set title
workBook.Metadata.Title = "July";
// Set keywords
workBook.Metadata.Keywords = "Report";

// Read the creation date of the excel file
DateTime? creationDate = workBook.Metadata.Created;

// Read the last printed date of the excel file
DateTime? printDate = workBook.Metadata.LastPrinted;

workBook.SaveAs("editedMetadata.xlsx");
Imports IronXL
Imports System

Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Set author
workBook.Metadata.Author = "Your Name"
' Set comments
workBook.Metadata.Comments = "Monthly report"
' Set title
workBook.Metadata.Title = "July"
' Set keywords
workBook.Metadata.Keywords = "Report"

' Read the creation date of the excel file
Dim creationDate? As DateTime = workBook.Metadata.Created

' Read the last printed date of the excel file
Dim printDate? As DateTime = workBook.Metadata.LastPrinted

workBook.SaveAs("editedMetadata.xlsx")
$vbLabelText   $csharpLabel

Para situaciones más complejas, puede combinar la edición de metadatos con otras operaciones de Excel. Aquí tienes un ejemplo completo que muestra el procesamiento por lotes de varios archivos de Excel:

using IronXL;
using System;
using System.IO;

public class BatchMetadataProcessor
{
    public static void ProcessFinancialReports(string folderPath)
    {
        // Get all Excel files in the directory
        string[] excelFiles = Directory.GetFiles(folderPath, "*.xlsx");

        foreach (string filePath in excelFiles)
        {
            // Load the workbook
            WorkBook workBook = WorkBook.Load(filePath);

            // Update metadata based on file content
            string fileName = Path.GetFileNameWithoutExtension(filePath);

            // Set consistent metadata across all reports
            workBook.Metadata.Author = "Finance Department";
            workBook.Metadata.Company = "Your Company Name";
            workBook.Metadata.Category = "Financial Reports";

            // Set dynamic metadata based on filename
            if (fileName.Contains("Q1"))
            {
                workBook.Metadata.Title = "Q1 Financial Report";
                workBook.Metadata.Keywords = "Q1, Finance, Quarterly";
            }
            else if (fileName.Contains("Q2"))
            {
                workBook.Metadata.Title = "Q2 Financial Report";
                workBook.Metadata.Keywords = "Q2, Finance, Quarterly";
            }

            // Add timestamp to comments
            workBook.Metadata.Comments = $"Processed on {DateTime.Now:yyyy-MM-dd HH:mm}";

            // Set the subject based on worksheet content
            WorkSheet sheet = workBook.DefaultWorkSheet;
            workBook.Metadata.Subject = $"Report containing {sheet.RowCount} data rows";

            // Save with updated metadata
            string outputPath = Path.Combine(folderPath, "processed", fileName + "_updated.xlsx");
            workBook.SaveAs(outputPath);
        }
    }
}
using IronXL;
using System;
using System.IO;

public class BatchMetadataProcessor
{
    public static void ProcessFinancialReports(string folderPath)
    {
        // Get all Excel files in the directory
        string[] excelFiles = Directory.GetFiles(folderPath, "*.xlsx");

        foreach (string filePath in excelFiles)
        {
            // Load the workbook
            WorkBook workBook = WorkBook.Load(filePath);

            // Update metadata based on file content
            string fileName = Path.GetFileNameWithoutExtension(filePath);

            // Set consistent metadata across all reports
            workBook.Metadata.Author = "Finance Department";
            workBook.Metadata.Company = "Your Company Name";
            workBook.Metadata.Category = "Financial Reports";

            // Set dynamic metadata based on filename
            if (fileName.Contains("Q1"))
            {
                workBook.Metadata.Title = "Q1 Financial Report";
                workBook.Metadata.Keywords = "Q1, Finance, Quarterly";
            }
            else if (fileName.Contains("Q2"))
            {
                workBook.Metadata.Title = "Q2 Financial Report";
                workBook.Metadata.Keywords = "Q2, Finance, Quarterly";
            }

            // Add timestamp to comments
            workBook.Metadata.Comments = $"Processed on {DateTime.Now:yyyy-MM-dd HH:mm}";

            // Set the subject based on worksheet content
            WorkSheet sheet = workBook.DefaultWorkSheet;
            workBook.Metadata.Subject = $"Report containing {sheet.RowCount} data rows";

            // Save with updated metadata
            string outputPath = Path.Combine(folderPath, "processed", fileName + "_updated.xlsx");
            workBook.SaveAs(outputPath);
        }
    }
}
Imports IronXL
Imports System
Imports System.IO

Public Class BatchMetadataProcessor
    Public Shared Sub ProcessFinancialReports(folderPath As String)
        ' Get all Excel files in the directory
        Dim excelFiles As String() = Directory.GetFiles(folderPath, "*.xlsx")

        For Each filePath As String In excelFiles
            ' Load the workbook
            Dim workBook As WorkBook = WorkBook.Load(filePath)

            ' Update metadata based on file content
            Dim fileName As String = Path.GetFileNameWithoutExtension(filePath)

            ' Set consistent metadata across all reports
            workBook.Metadata.Author = "Finance Department"
            workBook.Metadata.Company = "Your Company Name"
            workBook.Metadata.Category = "Financial Reports"

            ' Set dynamic metadata based on filename
            If fileName.Contains("Q1") Then
                workBook.Metadata.Title = "Q1 Financial Report"
                workBook.Metadata.Keywords = "Q1, Finance, Quarterly"
            ElseIf fileName.Contains("Q2") Then
                workBook.Metadata.Title = "Q2 Financial Report"
                workBook.Metadata.Keywords = "Q2, Finance, Quarterly"
            End If

            ' Add timestamp to comments
            workBook.Metadata.Comments = $"Processed on {DateTime.Now:yyyy-MM-dd HH:mm}"

            ' Set the subject based on worksheet content
            Dim sheet As WorkSheet = workBook.DefaultWorkSheet
            workBook.Metadata.Subject = $"Report containing {sheet.RowCount} data rows"

            ' Save with updated metadata
            Dim outputPath As String = Path.Combine(folderPath, "processed", fileName & "_updated.xlsx")
            workBook.SaveAs(outputPath)
        Next
    End Sub
End Class
$vbLabelText   $csharpLabel

¿Qué ocurre con los metadatos existentes cuando guardo?

Cuando guarda o exporta archivos de Excel utilizando IronXL, cualquier propiedad de metadatos que no haya modificado explícitamente conserva sus valores originales. Sólo se actualizarán en el archivo guardado las propiedades que hayas modificado. Este enfoque de actualización selectiva garantiza que los valiosos metadatos existentes no se pierdan accidentalmente durante el procesamiento. La siguiente imagen muestra cómo aparecen los metadatos en el panel de propiedades del documento de Excel después de ser editados con IronXL:

Panel de propiedades del documento de Excel que muestra los campos de metadatos editados, incluidos Autor, Título, Asunto y Palabras clave después de la modificación con IronXL

Si necesita borrar los metadatos existentes antes de establecer nuevos valores, simplemente asigne cadenas vacías o valores nulos a las propiedades que desea restablecer. Esto resulta especialmente útil cuando se preparan documentos para distribución externa en los que se desea eliminar la información interna de la empresa.


¿Qué campos de metadatos están disponibles en IronXL?

No todas las propiedades de los metadatos pueden editarse. Algunas propiedades solo pueden ser recuperadas. Comprender qué propiedades soportan las distintas operaciones es crucial para una gestión eficaz de los metadatos. Cuando se trabaja con libros de trabajo protegidos por contraseña, se puede seguir accediendo a los metadatos y modificándolos después de descifrar correctamente el libro de trabajo.

¿Qué propiedades admiten operaciones de lectura y escritura?

Propiedad Descripción Operaciones Casos de uso comunes
Autor Nombre del creador del documento Establecer, modificar, recuperar Seguimiento de la propiedad de los documentos, conformidad
Comentarios Notas adicionales sobre el documento Establecer, modificar, recuperar Notas sobre la versión, instrucciones de procesamiento
Última impresión Fecha/hora de la última operación de impresión Establecer, modificar, recuperar Seguimiento del historial de impresión, registros de auditoría
Palabras clave Palabras clave para la búsqueda Establecer, modificar, recuperar Categorización de documentos, optimización de búsquedas
Categoría Clasificación por categorías de documentos Establecer, modificar, recuperar Organización de archivos, clasificación por departamentos
Creado Fecha de creación del documento Establecer, modificar, recuperar Seguimiento de la antigüedad de los documentos, decisiones de archivo
FechaModificada Fecha de la última modificación Establecer, modificar, recuperar Seguimiento de cambios, control de versiones
Asunto` Descripción del tema del documento Establecer, modificar, recuperar Resumen de contenidos, identificación rápida
Título Título del documento Establecer, modificar, recuperar Identificación de documentos, informes

¿Qué propiedades son de sólo lectura?

Propiedad Descripción Valores típicos
NombreDeLaAplicación Nombre de la aplicación que creó el archivo "Microsoft Excel", "IronXL"
Propiedades personalizadas Propiedades personalizadas definidas por el usuario Varía según el documento
Empresa Nombre de la empresa asociada al documento Nombre de la organización del sistema
Gestor Nombre del gestor a partir de las propiedades del documento Obtenido del archivo original
Plantilla Plantilla utilizada para crear el documento Plantilla de nombre de archivo o "Normal

Para las operaciones avanzadas de metadatos y la documentación completa de la API, consulte la Referencia de la API de IronXL. Si encuentra algún problema con el manejo de metadatos, consulte nuestras guías de solución de problemas o explore opciones de licencia para implementaciones de producción.

Preguntas Frecuentes

¿Cómo puedo editar metadatos de Excel mediante programación en C#?

IronXL proporciona una simple propiedad Metadata en la clase WorkBook que le permite editar metadatos de Excel mediante programación. Puede establecer fácilmente propiedades como Título, Autor, Asunto y Palabras clave sin necesidad de Microsoft Interop. Simplemente cargue su libro y acceda a workBook.Metadata para modificar cualquier propiedad de metadatos.

¿Qué propiedades de metadatos puedo modificar en un archivo Excel?

Con IronXL, puede modificar varias propiedades de metadatos, como autor, título, asunto, palabras clave, categoría, comentarios, estado, administrador y empresa. La biblioteca también proporciona acceso de sólo lectura a las fechas de creación y modificación, lo que permite una gestión completa de los metadatos de sus hojas de cálculo.

¿Necesito tener instalado Microsoft Office para editar metadatos de Excel?

No, IronXL no requiere la instalación de Microsoft Office o Interop. Es una biblioteca independiente de C# que puede leer, escribir y modificar archivos de Excel y sus metadatos de forma independiente, por lo que es ideal para entornos de servidor o sistemas sin instalaciones de Office.

¿Puedo procesar por lotes los metadatos de varios archivos Excel?

Sí, IronXL admite el procesamiento por lotes de archivos de Excel. Puede iterar a través de múltiples hojas de cálculo en un directorio, cargar cada una usando WorkBook.Load(), modificar sus propiedades de metadatos y volver a guardarlas. Esto es particularmente útil para organizar grandes colecciones de archivos de hojas de cálculo.

¿Qué formatos de archivo Excel admiten la edición de metadatos?

Las capacidades de edición de metadatos de IronXL funcionan a la perfección con varios formatos de archivo de hoja de cálculo, incluidos los archivos XLSX, XLS y CSV. La biblioteca maneja internamente los detalles específicos del formato, lo que le permite utilizar la misma interfaz de propiedades de metadatos independientemente del tipo de archivo.

¿Cómo guardo los cambios en los metadatos después de editarlos?

Tras modificar las propiedades de los metadatos mediante IronXL, basta con llamar al método Save() para actualizar el archivo existente o a SaveAs() para crear un nuevo archivo con los metadatos actualizados. La biblioteca persiste automáticamente todos los cambios de metadatos junto con cualquier modificación de los datos de la hoja de cálculo.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 1,846,091 | Versión: 2026.2 recién lanzado