Biblioteca Ruby Open Source para criar documentos Word e adicionar tabelas
Gem Ruby gratuito (biblioteca) que permite a criação de arquivos Microsoft Word .docx usando o formato Office Open XML (OOXML) e adicionar parágrafos de texto, tabelas e imagens dentro dos arquivos DOCX.
O que é OpenXml::Docx?
Os documentos Microsoft Word se tornaram o padrão para comunicações empresariais, relatórios e documentação em diversos setores. Embora a criação manual de documentos funcione para pequenas tarefas, automatizar a geração de documentos torna‑se essencial ao lidar com modelos, operações em lote ou conteúdo dinâmico. É aqui que o OpenXml::Docx entra em cena — uma biblioteca Ruby que capacita desenvolvedores a criar documentos Word profissionais programaticamente. A biblioteca funciona onde quer que o Ruby seja executado, sem dependências externas. Existem várias funcionalidades importantes, como criar novos documentos Word, aplicar formatação e estilo de texto, tabelas e apresentação de dados, integração de imagens e mídia, entre outras.
OpenXml::Docx é um gem Ruby que fornece uma interface limpa e intuitiva para gerar documentos Word no formato Open XML (a extensão .docx que todos conhecemos). Ao contrário de soluções pesadas que exigem a instalação do Microsoft Office, esta biblioteca funciona de forma independente, criando documentos do zero usando puro código Ruby. Ela segue o padrão Office Open XML, garantindo compatibilidade com Microsoft Word, Google Docs, LibreOffice e outros processadores de texto modernos. A biblioteca foca na simplicidade e legibilidade, tornando a geração de documentos acessível até mesmo para desenvolvedores que não estão familiarizados com a complexa estrutura XML subjacente dos documentos Word. Em vez de lidar com namespaces e esquemas XML, você pode escrever código Ruby direto que parece natural e fácil de manter.
Começando com OpenXml::Docx
A forma recomendada de instalar o OpenXml::Docx é usando RubyGems. Por favor, use o comando a seguir para uma instalação tranquila.
Instale OpenXml::Docx via RubyGems
gem install openxml-docxYou can also download it directly from GitHub.Criando seu primeiro documento DOCX
O OpenXml::Docx de código aberto incluiu suporte completo para criar e gerenciar novos documentos Word dentro de aplicações Java. O bloco de construção fundamental de um documento Word é o parágrafo. Com apenas algumas linhas de código, desenvolvedores podem adicionar texto e imagens em documentos Word. Aqui está um exemplo simples que demonstra como os desenvolvedores podem acessar o corpo do documento, adicionar um parágrafo com um trecho de texto, aplicar formatação e salvar o arquivo.
Como criar um documento Word e adicionar parágrafo com texto via API Java?
require 'openxml/docx'
# Create a new document package
package = OpenXml::Docx::Package.new
# Access the main document
doc = package.document
# Add a paragraph with text
paragraph = doc.add_paragraph
run = paragraph.add_run
run.text = "Welcome to OpenXml::Docx"
run.bold = true
run.font_size = 24
# Save the document
package.save('welcome.docx')
Formatação avançada de texto via Java
A biblioteca open source OpenXml::Docx inclui suporte completo tanto para formatação de texto básica quanto avançada em documentos Word. Além de negrito e itálico básicos, a biblioteca suporta formatação de texto sofisticada. O exemplo de código Java a seguir demonstra sublinhados, tachados, realces e combinações de múltiplos efeitos. A propriedade de cor aceita valores hexadecimais, permitindo correspondência precisa de cor com as diretrizes da marca.
Como aplicar formatação de texto a documentos Word via API Java?
require 'openxml/docx'
package = OpenXml::Docx::Package.new
doc = package.document
# Demonstrate various text effects
para1 = doc.add_paragraph
run1 = para1.add_run
run1.text = "This text is underlined"
run1.underline = :single
para2 = doc.add_paragraph
run2 = para2.add_run
run2.text = "This text has a strikethrough"
run2.strike = true
para3 = doc.add_paragraph
run3 = para3.add_run
run3.text = "This text is highlighted"
run3.highlight = "yellow"
para4 = doc.add_paragraph
run4 = para4.add_run
run4.text = "This combines multiple effects"
run4.bold = true
run4.italic = true
run4.color = "FF0000"
run4.font_size = 16
package.save('formatted_text.docx')
Criando tabelas para dados em arquivos Word via Java
Tabelas são essenciais para apresentar informações estruturadas. A biblioteca OpenXml::Docx facilita para desenvolvedores a criação de tabelas dentro de documentos Word para gerenciar dados de forma adequada em aplicações Java. Aqui está um exemplo prático que cria uma tabela de vendas profissional com uma linha de cabeçalho em negrito e três linhas de dados. O código demonstra como acessar células específicas e preenchê‑las com conteúdo. Você pode iterar sobre estruturas de dados e preencher tabelas dinamicamente, sendo isso perfeito para a geração de relatórios.
Como criar uma tabela com linhas e colunas em aplicativos Java?
require 'openxml/docx'
package = OpenXml::Docx::Package.new
doc = package.document
# Add a heading
heading = doc.add_paragraph
heading_run = heading.add_run
heading_run.text = "Sales Summary"
heading_run.bold = true
heading_run.font_size = 18
# Create a table with 3 columns and 4 rows
table = doc.add_table(rows: 4, cols: 3)
# Header row
table.rows[0].cells[0].add_paragraph.add_run.text = "Product"
table.rows[0].cells[1].add_paragraph.add_run.text = "Units Sold"
table.rows[0].cells[2].add_paragraph.add_run.text = "Revenue"
# Make header row bold
table.rows[0].cells.each do |cell|
cell.paragraphs[0].runs[0].bold = true
end
# Data rows
products = [
["Widget A", "1,250", "$25,000"],
["Widget B", "890", "$17,800"],
["Widget C", "2,100", "$42,000"]
]
products.each_with_index do |product, index|
row = table.rows[index + 1]
product.each_with_index do |value, col_index|
row.cells[col_index].add_paragraph.add_run.text = value
end
end
package.save('sales_summary.docx')
Geração automatizada de relatórios e faturas
As empresas podem usar a biblioteca OpenXml::Docx para gerar relatórios mensais, demonstrações financeiras ou resumos analíticos automaticamente. Ao extrair dados de bancos de dados e formatá‑los em documentos profissionais, as organizações economizam inúmeras horas de trabalho manual. Além disso, plataformas de e‑commerce e negócios de serviços podem gerar faturas e contratos dinamicamente. Informações de clientes, itens de linha e termos podem ser preenchidos a partir de bancos de dados, garantindo precisão e consistência em todos os documentos.