docxt

package module
v0.0.0-...-a886e2b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 15, 2017 License: MIT Imports: 3 Imported by: 0

README

Using {{Items$Column1}} for array data

DOCX templater on GoLang

Simple .docx (MS Word XML document) template based document generator using handlebars.

Takes input .docx documents with mustache sippets in it and renders new document with snippets replaced by provided context.

Thanks to github.com/aymerick/raymond for useful libs.

Installation

go get -u github.com/legion-zver/go-docx-templates

Usage (demo)

Template example.docx

Sample document image

demo.go

package main

import (
    "fmt"    
    "github.com/legion-zver/go-docx-templates"
)

type TestStruct struct {
    FileName string
    Items []TestItemStruct
}

type TestItemStruct struct {
    Column1 string
    Column2 string    
    SubItems []TestItemStruct2
}

type TestItemStruct2 struct {
    Column1 string
    Column4 string    
}

func main() {
    template, err := docxt.OpenTemplate("./example.docx")
    if err != nil {
        fmt.Println(err)
        return
    }  
    test := new(TestStruct)
    test.FileName = "example.docx"
    test.Items = []TestItemStruct{
        TestItemStruct{"1","2",[]TestItemStruct2{TestItemStruct2{"3","4"},TestItemStruct2{"5","6"}}},
        TestItemStruct{"3","4",[]TestItemStruct2{TestItemStruct2{"7","8"},TestItemStruct2{"9","10"}}},
    }    
    if err := template.RenderTemplate(test); err != nil {
        fmt.Println(err)
        return
    }
    if err := template.Save("result.docx"); err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println("Success")
}

Result result.docx

Sample document image

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DocxTemplateFile

type DocxTemplateFile struct {
	// contains filtered or unexported fields
}

DocxTemplateFile - файл шаблонизатора

func OpenTemplate

func OpenTemplate(fileName string) (*DocxTemplateFile, error)

OpenTemplate - open template

func (*DocxTemplateFile) RenderHeaderTemplate

func (t *DocxTemplateFile) RenderHeaderTemplate(indexHeader int, v interface{}) error

RenderHeaderTemplate (SimpleDocxFile) - рендер шаблона

func (*DocxTemplateFile) RenderTemplate

func (t *DocxTemplateFile) RenderTemplate(v interface{}) error

RenderTemplate (SimpleDocxFile) - рендер шаблона

func (*DocxTemplateFile) Save

func (t *DocxTemplateFile) Save(fileName string) error

Save (DocxTemplateFile)

func (*DocxTemplateFile) Write

func (t *DocxTemplateFile) Write(w io.Writer) error

Write (DocxTemplateFile)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL