Vai alla libreria per generare e modificare documenti MS Word

Libreria Go Open Source per la gestione e l'automazione di attività comuni di elaborazione di testi come l'inserimento di intestazioni e piè di pagina, tabelle e immagini in file Word DOCX e altro ancora.

unioffice è una potente libreria open source pure Go che consente agli sviluppatori di software di gestire documenti di Word e automatizzare facilmente le comuni attività di elaborazione testi all'interno delle proprie applicazioni senza richiedere Microsoft Word. La libreria è abbastanza ben ottimizzata e ti consente di modificare facilmente il codice per soddisfare le tue esigenze.

La libreria unioffice è una solida libreria basata su Go che può essere utilizzata per generare, modificare, formattare ed elaborare documenti Office Open XML. La libreria supporta diverse importanti funzionalità di elaborazione testi, come lettura, scrittura e modifica di documenti Word, supporto per la formattazione del testo, sommario generato automaticamente, posizionamento su una pagina del documento, inserimento di intestazioni e piè di pagina, aggiunta di tabelle, apertura di un documento come modello , supporto campi modulo e molto altro.

Previous Next

Per iniziare con unioffice

Il modo consigliato per installare unioffice nel tuo progetto è utilizzare GitHub. Utilizzare il comando seguente per un'installazione senza problemi.

Installa unioffice tramite GitHub

go get github.com/unidoc/unioffice/
go build -i github.com/unidoc/unioffice/...   

Crea un documento Word DOCX tramite l'API Go

La libreria open source unioffice ha fornito la struttura per creare facilmente un nuovo documento Word DOCX. Puoi anche aprire e modificare facilmente un documento Microsoft Word esistente all'interno delle tue applicazioni. La libreria includeva anche funzionalità per l'aggiunta di nuovi paragrafi di testo, l'inserimento di immagini in una pagina, l'allineamento del testo, l'aggiunta di intestazioni e piè di pagina, l'aggiunta di tabelle e molto altro.

Access Word Document Properties via Go API

func main() {
	doc, err := document.Open("document.docx")
	if err != nil {
		log.Fatalf("error opening document: %s", err)
	}
	defer doc.Close()
	cp := doc.GetOrCreateCustomProperties()
	// You can read properties from the document
	fmt.Println("AppVersion", *cp.GetPropertyByName("AppVersion").X().Lpwstr)
	fmt.Println("Company", *cp.GetPropertyByName("Company").X().Lpwstr)
	fmt.Println("DocSecurity", *cp.GetPropertyByName("DocSecurity").X().I4)
	fmt.Println("LinksUpToDate", *cp.GetPropertyByName("LinksUpToDate").X().Bool)
	fmt.Println("Non-existent", cp.GetPropertyByName("nonexistentproperty"))
	// And change them as well
	cp.SetPropertyAsLpwstr("Company", "Another company") // text, existing property
	fmt.Println("Company", *cp.GetPropertyByName("Company").X().Lpwstr)
	// Adding new properties
	cp.SetPropertyAsLpwstr("Another text property", "My text value") // text
	cp.SetPropertyAsI4("Another integer number property", 42)        // int32
	cp.SetPropertyAsR8("Another float number property", 3.14)        // float64
	cp.SetPropertyAsDate("Another date property", time.Now())        // date
	doc.SaveToFile("document_customized.docx")
	// For new documents all is the same
	docNew := document.New()
	defer docNew.Close()
	cpNew := docNew.GetOrCreateCustomProperties()
	cpNew.SetPropertyAsLpwstr("Another text property", "My text value") // text
	cpNew.SetPropertyAsI4("Another integer number property", 42)        // int23
	cpNew.SetPropertyAsR8("Another float number property", 3.14)        // float64
	cpNew.SetPropertyAsDate("Another date property", time.Now())        // date
	docNew.SaveToFile("document_new.docx")
}
  

 Inserisci immagini nei file Word DOCX

La libreria open source unioffice offre agli sviluppatori di software la possibilità di utilizzare immagini all'interno di documenti Microsoft Word. Supporta funzionalità come l'inserimento di immagini nel luogo prescelto, la modifica di un'immagine esistente, l'avvolgimento del testo attorno all'immagine, l'eliminazione dell'immagine e molti altri. Per aggiungere un'immagine è necessario fornire il nome e la posizione dell'immagine.

Gestire le immagini nei documenti di Word via Go API

func main() {
	doc := document.New()
	defer doc.Close()
	img1, err := common.ImageFromFile("gophercolor.png")
	if err != nil {
		log.Fatalf("unable to create image: %s", err)
	}
	img2data, err := ioutil.ReadFile("gophercolor.png")
	if err != nil {
		log.Fatalf("unable to read file: %s", err)
	}
	img2, err := common.ImageFromBytes(img2data)
	if err != nil {
		log.Fatalf("unable to create image: %s", err)
	}
	img1ref, err := doc.AddImage(img1)
	if err != nil {
		log.Fatalf("unable to add image to document: %s", err)
	}
	img2ref, err := doc.AddImage(img2)
	if err != nil {
		log.Fatalf("unable to add image to document: %s", err)
	}
	para := doc.AddParagraph()
	anchored, err := para.AddRun().AddDrawingAnchored(img1ref)
	if err != nil {
		log.Fatalf("unable to add anchored image: %s", err)
	}
	anchored.SetName("Gopher")
	anchored.SetSize(2*measurement.Inch, 2*measurement.Inch)
	anchored.SetOrigin(wml.WdST_RelFromHPage, wml.WdST_RelFromVTopMargin)
	anchored.SetHAlignment(wml.WdST_AlignHCenter)
	anchored.SetYOffset(3 * measurement.Inch)
	anchored.SetTextWrapSquare(wml.WdST_WrapTextBothSides)
	run := para.AddRun()
	for i := 0; i < 16; i++ {
		run.AddText(lorem)
		// drop an inline image in
		if i == 13 {
			inl, err := run.AddDrawingInline(img1ref)
			if err != nil {
				log.Fatalf("unable to add inline image: %s", err)
			}
			inl.SetSize(1*measurement.Inch, 1*measurement.Inch)
		}
		if i == 15 {
			inl, err := run.AddDrawingInline(img2ref)
			if err != nil {
				log.Fatalf("unable to add inline image: %s", err)
			}
			inl.SetSize(1*measurement.Inch, 1*measurement.Inch)
		}
	}
	doc.SaveToFile("image.docx")
}
  

Aggiungi intestazione e piè di pagina al documento di Word

Intestazioni e piè di pagina possono essere utilizzati per includere le informazioni che gli utenti desiderano visualizzare su ogni pagina di un documento, ad esempio il nome dell'autore, il titolo del documento oi numeri di pagina. La libreria unioffice consente agli sviluppatori di software di aggiungere facilmente intestazioni e piè di pagina ai documenti Word. Consente inoltre di avere intestazioni e piè di pagina diversi a seconda della sezione del documento. Comprendeva anche il supporto per le funzionalità pari, dispari e prime.

Aggiungi Header & Footer al documento Word via Go API

func main() {
	doc := document.New()
	defer doc.Close()
	img, err := common.ImageFromFile("gophercolor.png")
	if err != nil {
		log.Fatalf("unable to create image: %s", err)
	}
	hdr := doc.AddHeader()
	// We need to add a reference of the image to the header instead of to the
	// document
	iref, err := hdr.AddImage(img)
	if err != nil {
		log.Fatalf("unable to to add image to document: %s", err)
	}
	para := hdr.AddParagraph()
	para.Properties().AddTabStop(2.5*measurement.Inch, wml.ST_TabJcCenter, wml.ST_TabTlcNone)
	run := para.AddRun()
	run.AddTab()
	run.AddText("My Document Title")
	imgInl, _ := para.AddRun().AddDrawingInline(iref)
	imgInl.SetSize(1*measurement.Inch, 1*measurement.Inch)
	// Headers and footers are not immediately associated with a document as a
	// document can have multiple headers and footers for different sections.
	doc.BodySection().SetHeader(hdr, wml.ST_HdrFtrDefault)
	ftr := doc.AddFooter()
	para = ftr.AddParagraph()
	para.Properties().AddTabStop(6*measurement.Inch, wml.ST_TabJcRight, wml.ST_TabTlcNone)
	run = para.AddRun()
	run.AddText("Some subtitle goes here")
	run.AddTab()
	run.AddText("Pg ")
	run.AddField(document.FieldCurrentPage)
	run.AddText(" of ")
	run.AddField(document.FieldNumberOfPages)
	doc.BodySection().SetFooter(ftr, wml.ST_HdrFtrDefault)
	lorem := `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin lobortis, lectus dictum feugiat tempus, sem neque finibus enim, sed eleifend sem nunc ac diam. Vestibulum tempus sagittis elementum`
	for i := 0; i < 5; i++ {
		para = doc.AddParagraph()
		run = para.AddRun()
		run.AddText(lorem)
	}
	doc.SaveToFile("header-footer.docx")
}
  

Lavorare con le tabelle in Word DOCX

La libreria open source unioffice consente ai programmatori di computer di aggiungere e modificare tabelle all'interno di documenti Word. Le tabelle sono molto utili e possono essere utilizzate per organizzare e presentare i dati in modo migliore. Supporta l'aggiunta di una tabella con e senza bordi e consente di costruire facilmente uno stile di tabella. Puoi facilmente posizionare il contenuto in una tabella e regolare le dimensioni in base alle tue esigenze.

 Italiano