SharpDocx: genera documentos Word desde plantillas en .NET
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.
- Sin dependencias de Office instalado en el servidor
- Plantillas editables directamente en Word
- Soporte para bucles, condicionales e imágenes
- Open source y gratuito — licencia MIT
- Compatible con .NET 6, 7 y 8
Instalación
Instala el paquete desde NuGet:
dotnet add package SharpDocxModelo de datos
Define una clase que hereda de DocumentModel con los datos a insertar:
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
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:
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.