1. Produkter
  2.   Ordbehandling
  3.   Ruby
  4.   Ruby-Docx-Templater
 
  

Skapa dynamiska Word-filer från mall via gratis Ruby API

Ledande Open Source Ruby-bibliotek designat för att skapa dynamiska Microsoft Word (.docx) dokument från fördesignade mallar.

Vad är Ruby-Docx-Templater?

Att generera dynamiska Microsoft Word-dokument (.docx) från en Ruby-applikation kan vara en förvånansvärt komplex uppgift. Du kan behöva generera rapporter, fakturor eller brev som icke-tekniska användare har designat. Även om många lösningar finns, kräver de ofta tunga beroenden som LibreOffice eller lokala Word‑installationer. Här kommer Ruby-Docx-Templater, ett lättviktigt gem som tar ett annat grepp. Det låter användare använda en standard .docx‑fil som din mall, manipulera den helt i minnet för att injicera deras data. Detta gör det till ett snabbt, säkert och deploymentsvänligt alternativ för alla Ruby‑utvecklare.

I sitt kärna är Ruby-Docx-Templater-biblioteket en mallmotor specifikt för .docx‑filer. Det är ett lättviktigt, kraftfullt Ruby‑gem designat för att skapa dynamiska Microsoft Word (.docx) dokument från fördesignade mallar. Det fungerar genom ett enkelt taggbaserat system i ett standard Word‑dokument. Du skapar en mall i Word, placerar speciella taggar där du vill att dynamiskt innehåll ska visas, och låter sedan gem‑et ersätta dessa taggar med faktiska data från din Ruby‑applikation. Dess minnesbaserade bearbetning, stöd för komplexa tabellstrukturer och bevarande av formatering gör det idealiskt för automatisering av affärsdokument.

Previous Next

Kom igång med Ruby-Docx-Templater

Det rekommenderade sättet att installera Ruby-Docx-Templater är att använda RubyGems. Använd följande kommando för en smidig installation.

Installera Ruby-Docx-Templater via RubyGems

 gem install ruby-docx-templater 

Installera Ruby-Docx-Templater via GitHub

 git clone https://github.com/jawspeak/ruby-docx-templater.git 
You can also download it directly from GitHub.

Skapa Word Docx-fil från mall via Ruby

Den simplaste funktionen i Ruby-Docx-Templater är enkel textersättning. Du kan placera platshållare var som helst i ditt Word‑dokument, och biblioteket kommer att ersätta dem med faktiska värden. Skönheten i detta tillvägagångssätt är att formateringen bevaras. Om du gör $COMPANY_NAME$ fet och röd i din mall, kommer den att förbli fet och röd i utskriften. Detta ger designerna full kontroll över dokumentets utseende. I din Word‑mall definierar du nycklar med $KEY$‑syntaxen. Dollartecknen fungerar som avgränsare, vilket tydligt visar var ersättningar ska ske.

Skapa en Word Docx-fil med mallfil via Ruby?

require 'docx_templater'

# Load your template file
doc = DocxTemplater::TemplateProcessor.new('invoice_template.docx')

# Define your data as a hash
data = {
  'COMPANY_NAME' => 'Acme Corporation',
  'INVOICE_NUMBER' => 'INV-2024-001',
  'INVOICE_DATE' => '2024-11-04',
  'CLIENT_NAME' => 'John Smith',
  'TOTAL_AMOUNT' => '$1,250.00'
}

# Render the document with your data
doc.render(data)

# Save the output
doc.save('output_invoice.docx')

Stöd för flerrads-tabell-loopar

En av de mest kraftfulla funktionerna är möjligheten att generera dynamiska tabeller med flera rader. Detta är nödvändigt för att skapa punktlistor i fakturor, produktkataloger eller någon rapport med upprepande data. Du definierar ett loop‑område i din tabell och biblioteket duplicerar allt mellan dessa markörer för varje objekt i din dataarray. Du kan formatera varje cell individuellt i Word. Till exempel kan du högerjustera siffror, göra rubriker feta eller applicera specifika teckensnitt. All formatering bevaras i de genererade raderna.

Hur skapar man en produktrapport med flera rader i Docx-format via Ruby-biblioteket?

require 'docx_templater'

doc = DocxTemplater::TemplateProcessor.new('product_report.docx')

# Define items as an array of hashes
data = {
  'REPORT_TITLE' => 'Monthly Sales Report',
  'REPORT_DATE' => 'November 2024',
  'ITEMS_LIST' => [
    {
      'PRODUCT_NAME' => 'Laptop Pro 15"',
      'QUANTITY' => '5',
      'UNIT_PRICE' => '$1,200.00',
      'TOTAL' => '$6,000.00'
    },
    {
      'PRODUCT_NAME' => 'Wireless Mouse',
      'QUANTITY' => '12',
      'UNIT_PRICE' => '$25.00',
      'TOTAL' => '$300.00'
    },
    {
      'PRODUCT_NAME' => 'USB-C Cable',
      'QUANTITY' => '20',
      'UNIT_PRICE' => '$15.00',
      'TOTAL' => '$300.00'
    }
  ]
}

doc.render(data)
doc.save('output_sales_report.docx')

Minnesbaserad bearbetning

Det öppna källkodsbiblioteket Ruby-Docx-Templater är mycket enkelt att hantera och stödjer minnesbaserad bearbetning i Ruby‑applikationer. All dokumentmanipulation sker i minnet, vilket betyder att din känsliga data aldrig rör filsystemet under mallningsprocessen. Detta är avgörande för applikationer som hanterar konfidentiell information som medicinska journaler, finansiella dokument eller personuppgifter.

Arbeta med Word XML

En unik aspekt av Ruby-Docx-Templater är att du ibland måste redigera den underliggande XML‑en i ditt Word‑dokument manuellt. Word infogar ofta formateringsmarkup som kan dela upp dina mallnycklar, vilket bryter ersättningsprocessen. När du skriver $CUSTOMER_NAME$ i Word kan det se korrekt ut på skärmen, men den underliggande XML‑en kan se ut så här.

 Svenska