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

Opprett dynamiske Word-filer fra mal via gratis Ruby API

Ledende åpen kildekode Ruby-bibliotek designet for å lage dynamiske Microsoft Word (.docx) dokumenter fra forhåndsdesignede maler.

Hva er Ruby-Docx-Templater?

Å generere dynamiske Microsoft Word-dokumenter (.docx) fra en Ruby-applikasjon kan være en overraskende kompleks oppgave. Du kan ha behov for å lage rapporter, fakturaer eller brev som ikke‑tekniske brukere har designet. Mens mange løsninger finnes, krever de ofte tunge avhengigheter som LibreOffice eller lokale Word-installasjoner. Her kommer Ruby-Docx-Templater, et lettvektig gem som tar en annen tilnærming. Det lar brukere bruke en standard .docx-fil som mal, og manipulere den helt i minnet for å injisere data. Dette gjør det til et raskt, sikkert og distribusjonsvennlig alternativ for enhver Ruby-utvikler.

Ruby-Docx-Templater-biblioteket er i sin kjerne en malmotor spesifikt for .docx-filer. Det er et lettvektig, kraftig Ruby-gem designet for å lage dynamiske Microsoft Word (.docx) dokumenter fra forhåndsdesignede maler. Det fungerer ved å bruke et enkelt tag‑basert system i et standard Word-dokument. Du lager en mal i Word, plasserer spesielle tagger der du vil at dynamisk innhold skal vises, og lar gemet erstatte disse taggene med faktiske data fra Ruby‑applikasjonen din. Dets minnebaserte prosessering, støtte for komplekse tabellstrukturer, og bevaring av formatering gjør det ideelt for automatisering av forretningsdokumenter.

Previous Next

Kom i gang med Ruby-Docx-Templater

Den anbefalte måten å installere Ruby-Docx-Templater på er via RubyGems. Vennligst bruk følgende kommando for en smidig installasjon.

Installer Ruby-Docx-Templater via RubyGems

 gem install ruby-docx-templater 

Installer Ruby-Docx-Templater via GitHub

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

Opprett Word Docx-fil fra mal via Ruby

Den mest grunnleggende funksjonen i Ruby-Docx-Templater er enkel tekstutskifting. Du kan plassere plassholdere hvor som helst i Word-dokumentet ditt, og biblioteket vil erstatte dem med faktiske verdier. Skjønnheten i denne tilnærmingen er at formatering bevares. Hvis du gjør $COMPANY_NAME$ fet og rød i malen din, vil den forbli fet og rød i output‑filen. Dette gir designere full kontroll over dokumentets utseende. I Word‑malen definerer du nøkler ved å bruke $KEY$‑syntaksen. Dollartegnene fungerer som avgrensere, slik at det er tydelig hvor erstatningene skal forekomme.

Opprett en Word Docx-fil ved å bruke en malfil 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øtte for flerradede tabellsløyfer

En av de mest kraftfulle funksjonene er evnen til å generere dynamiske tabeller med flere rader. Dette er essensielt for å lage punktlister i fakturaer, produktkataloger eller enhver rapport med repeterende data. Du definerer en løkkeregion i tabellen din, og biblioteket vil duplisere alt mellom disse markørene for hvert element i datamengden din. Du kan formatere hver celle individuelt i Word. For eksempel kan du høyrejustere tall, gjøre overskrifter fete, eller bruke spesifikke fonter. All formatering vil bli bevart i de genererte radene.

Hvordan lage en produktrapport med flere 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')

Minnebasert prosessering

Det åpne kildekode Ruby-Docx-Templater-biblioteket er svært enkelt å håndtere og støtter minnebasert prosessering i Ruby-applikasjoner. All dokumentmanipulering skjer i minnet, noe som betyr at dine sensitive data aldri berører filsystemet under templating‑prosessen. Dette er avgjørende for applikasjoner som håndterer konfidensiell informasjon som medisinske journaler, finansielle dokumenter eller personopplysninger.

Arbeide med Word XML

Et unikt aspekt ved Ruby-Docx-Templater er at du noen ganger må redigere den underliggende XML‑koden i Word-dokumentet manuelt. Word setter ofte inn formateringsmerking som kan splitte dine mal‑nøkler, og bryter erstatningsprosessen. Når du skriver $CUSTOMER_NAME$ i Word, kan det se korrekt ut på skjermen, men den underliggende XML‑koden kan se slik ut.

 Norsk