Accesați Bibliotecă pentru a Genera și editați documente MS Word

Bibliotecă Go Open Source pentru gestionarea și automatizarea sarcinilor obișnuite de procesare a cuvintelor, cum ar fi inserarea antetului și subsolului, tabelelor și imaginilor în fișierele Word DOCX și altele.

unioffice este o bibliotecă Pure Go cu sursă deschisă puternică, care permite dezvoltatorilor de software să gestioneze documente Word și să automatizeze cu ușurință sarcinile comune de procesare a textului în propriile aplicații, fără a necesita Microsoft Word. Biblioteca este destul de bine optimizată și vă permite să editați cu ușurință codul pentru a răspunde cerințelor dumneavoastră.

Biblioteca unioffice este o bibliotecă puternică bazată pe Go, care poate fi utilizată pentru generarea, editarea, formatarea și procesarea documentelor Office Open XML. Biblioteca acceptă câteva funcții importante de procesare a textului, cum ar fi citirea, scrierea și modificarea documentelor Word, suport pentru formatarea textului, cuprins generat automat, plasarea pe o pagină a documentului, inserarea antetelor și subsolurilor, adăugarea tabelelor, deschiderea unui document ca șablon , suport pentru câmpuri de formular și multe altele.

Previous Next

Noțiuni introductive cu unioffice

Modul recomandat de a instala unioffice în proiectul tău este să folosești GitHub. Vă rugăm să utilizați următoarea comandă pentru o instalare fără probleme.

Instalați unioffice prin GitHub

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

Creați document Word DOCX prin Go API

Biblioteca open source unioffice a oferit facilitatea de a crea cu ușurință un nou document Word DOCX. De asemenea, puteți deschide și modifica cu ușurință un document Microsoft Word existent în cadrul propriilor aplicații. Biblioteca a inclus și funcții pentru adăugarea de noi paragrafe de text, inserarea de imagini într-o pagină, alinierea textului, adăugarea antetelor și subsolurilor, adăugarea de tabele și multe altele.

Accesați Word Document Proprietăți prin 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")
}
  

 Inserați imagini în fișierele Word DOCX

Biblioteca open source unioffice oferă dezvoltatorilor de software posibilitatea de a utiliza imagini în documentele Microsoft Word. Acceptă funcționalități precum inserarea imaginilor la locul dorit, modificarea unei imagini existente, înfășurarea textului în jurul imaginii, ștergerea imaginii și multe altele. Pentru adăugarea unei imagini este necesar să furnizați numele și locația imaginii.

Gestionarea imaginilor în documentele Word prin 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")
}
  

Adăugați antet și subsol la documentul Word

Anteturile și subsolurile pot fi folosite pentru a include informațiile pe care utilizatorii doresc să apară pe fiecare pagină a unui document, cum ar fi numele autorului, titlul documentului sau numerele paginii. Biblioteca unioffice permite dezvoltatorilor de software să adauge cu ușurință anteturi și subsoluri la documentele Word. De asemenea, permite să aveți antete și subsoluri diferite în funcție de secțiunea documentului. De asemenea, a inclus suport pentru funcționalitățile par, impar și primele.

Adăugați Header Footer la Word Document 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")
}
  

Lucrul cu tabele în Word DOCX

Biblioteca open source unioffice permite programatorilor să adauge și să modifice tabele în documentele Word. Tabelele sunt foarte utile și pot fi folosite pentru a organiza și prezenta datele într-un mod mai bun. Acceptă adăugarea unui tabel cu și fără margini, precum și permite construirea unui stil de masă cu ușurință. Puteți plasa cu ușurință conținutul într-un tabel și puteți ajusta dimensiunea în funcție de nevoile dvs.

 Română