Ir al contenido principal
Volver al blog
.NETC#WordDocumentosFREE

SharpDocx: genera documentos Word desde plantillas en .NET

2 min de lecturaGratis

SharpDocx es una librería open source para .NET que permite generar documentos Word (.docx) dinámicamente usando plantillas. En lugar de construir el documento en código, diseñas la plantilla en Word y SharpDocx rellena los datos en tiempo de ejecución.

La guía completa fue traducida al español por Jorge Morelo — toda la documentación oficial estaba solo en inglés.

¿Por qué SharpDocx?

Cuando necesitas generar reportes, contratos o facturas en Word desde una app .NET, las opciones suelen ser complejas o de pago. SharpDocx resuelve esto con un enfoque simple: la plantilla es un .docx normal que editas en Word.

Instalación

Instala el paquete desde NuGet:

terminal
dotnet add package SharpDocx

Modelo de datos

Define una clase que hereda de DocumentModel con los datos a insertar:

InvoiceModel.cs
public class InvoiceModel : DocumentModel
{
    public string ClientName { get; set; }
    public string InvoiceNumber { get; set; }
    public decimal Total { get; set; }
    public List<LineItem> Items { get; set; }
}

Generar el documento

Program.cs
var model = new InvoiceModel
{
    ClientName = "Empresa ABC",
    InvoiceNumber = "INV-2026-001",
    Total = 1500000,
};

DocumentFactory.Create<InvoiceDocument>("template.docx", model)
    .Generate("output.docx");

Sintaxis en la plantilla Word

Dentro del .docx usas expresiones C# entre etiquetas para insertar datos dinámicamente:

template.docx
Señor/a: <%= Model.ClientName %>
Factura N°: <%= Model.InvoiceNumber %>

<# foreach(var item in Model.Items) { #>
  <%= item.Description %>  $<%= item.Price %>
<# } #>

TOTAL: $<%= Model.Total %>

Descarga la guía completa

La documentación oficial de SharpDocx estaba solo en inglés. Traduje la guía completa al español con todos los ejemplos, casos de uso avanzados y referencia de la API. Descárgala gratis con el botón de abajo.

Descargar Guía SharpDocx en español (DOCX)