Skip to content

Getting Started es

Hammad Maqbool edited this page Oct 29, 2026 · 1 revision

English · 简体中文 · 繁體中文 · Español · العربية · Français · Português (Brasil) · Deutsch · हिन्दी · 日本語 · 한국어 · Русский · Bahasa Indonesia · Türkçe · Italiano · Tiếng Việt

Primeros pasos con docxi: tu primer documento de Word en Ruby

Esta guía te lleva de una carpeta vacía a un archivo .docx con formato. Se da por hecho que conoces lo básico de Ruby. No necesitas Rails ni Microsoft Word.

1. Instala la gema

gem install docxi

En un proyecto con Gemfile, añade gem "docxi", "~> 0.1" y ejecuta bundle install en su lugar. Encontrarás los detalles en Instalación.

2. Crea un documento

Guarda esto como hello.rb:

require "docxi"

word = Docxi::Document.new
document = word.document

document.p(align: "center") do |p|
  p.text "Hello, Word", size: 24, bold: true
end

File.binwrite("hello.docx", word.render.string)

Ejecuta ruby hello.rb (o bundle exec ruby hello.rb en un proyecto con Bundler) y abre hello.docx.

3. Qué hace cada línea

  • Docxi::Document.new crea un documento vacío con los márgenes de página predeterminados.
  • word.document es el cuerpo del documento. Todo lo que añades pasa por él.
  • document.p añade un párrafo. Las opciones que se pasan a p, como align:, se aplican al párrafo y al texto que contiene.
  • p.text añade un fragmento de texto (un run). size: se expresa en puntos.
  • word.render construye el paquete .docx y devuelve un StringIO. Su .string contiene los bytes del archivo.

4. Añade una lista y una tabla

require "docxi"

word = Docxi::Document.new
document = word.document

document.p { |p| p.text "Quarterly summary", size: 16, bold: true }

document.p do |p|
  p.text "Revenue grew ", space: true
  p.text "12%", bold: true, color: "007A33"
  p.text " compared with last quarter.", space: true
end

document.p(ul: true) { |p| p.text "New customers: 48" }
document.p(ul: true) { |p| p.text "Customers lost: 3" }

document.table(columns_width: [200, 100]) do |table|
  table.tr(fill: "D9D9D9", bold: true) do |tr|
    tr.tc { |tc| tc.text "Region" }
    tr.tc { |tc| tc.text "Sales" }
  end
  table.tr do |tr|
    tr.tc { |tc| tc.text "North" }
    tr.tc { |tc| tc.text "$41,000", align: "right" }
  end
end

File.binwrite("summary.docx", word.render.string)

Dos cosas a tener en cuenta:

  • space: true conserva el espacio al principio o al final de un fragmento. Sin esa opción, Word elimina el espacio y las palabras quedan pegadas.
  • Las opciones de tr se aplican a todas las celdas de esa fila, por eso toda la fila de encabezado queda sombreada y en negrita.

5. Siguientes pasos

  • Ejemplos de uso: recetas completas para informes, facturas y cartas
  • Funciones: todas las opciones de párrafos, texto, tablas, imágenes, encabezados y pies de página
  • Integraciones: enviar el documento desde un controlador de Rails
  • Buenas prácticas: evita las sorpresas habituales antes de que ocurran

← Inicio de la wiki · README

Clone this wiki locally