1. Produkte
  2.   Textverarbeitung
  3.   GO
  4.   unioffice
 
  

Gehen Sie zur Bibliothek, um MS Word-Dokumente zu erstellen und zu bearbeiten

Open-Source-Go-Bibliothek zum Verwalten und Automatisieren allgemeiner Textverarbeitungsaufgaben wie das Einfügen von Kopf- und Fußzeilen, Tabellen und Bildern in Word-DOCX-Dateien und mehr.

unioffice ist eine leistungsstarke, reine Go-Open-Source-Bibliothek, die es Softwareentwicklern ermöglicht, Word-Dokumente zu verwalten und allgemeine Textverarbeitungsaufgaben mit Leichtigkeit in ihren eigenen Anwendungen zu automatisieren, ohne Microsoft Word zu benötigen. Die Bibliothek ist ziemlich gut optimiert und ermöglicht es Ihnen, den Code einfach an Ihre Anforderungen anzupassen.

Die unioffice-Bibliothek ist eine starke Go-basierte Bibliothek, die zum Generieren, Bearbeiten, Formatieren und Verarbeiten von Office Open XML-Dokumenten verwendet werden kann. Die Bibliothek unterstützt mehrere wichtige Textverarbeitungsfunktionen, wie z. B. Lesen, Schreiben und Ändern von Word-Dokumenten, Unterstützung für Textformatierung, automatisch generiertes Inhaltsverzeichnis, Platzieren auf einer Dokumentseite, Einfügen von Kopf- und Fußzeilen, Hinzufügen von Tabellen, Öffnen eines Dokuments als Vorlage , Unterstützung für Formularfelder und vieles mehr.

Previous Next

Erste Schritte mit unioffice

Die empfohlene Methode zum Installieren von unioffice in Ihrem Projekt ist die Verwendung von GitHub. Bitte verwenden Sie den folgenden Befehl für eine reibungslose Installation.

Installieren Sie unioffice über GitHub

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

Erstellen Sie ein Word-DOCX-Dokument über die Go-API

Die Open-Source-Bibliothek unioffice bietet die Möglichkeit, auf einfache Weise ein neues Word-DOCX-Dokument zu erstellen. Sie können auch problemlos ein vorhandenes Microsoft Word-Dokument in Ihren eigenen Anwendungen öffnen und ändern. Die Bibliothek enthielt auch Funktionen zum Hinzufügen neuer Textabsätze, Einfügen von Bildern in eine Seite, Textausrichtung, Hinzufügen von Kopf- und Fußzeilen, Hinzufügen von Tabellen und vielem mehr.

Zugriff auf Word-Dokumenteigenschaften über 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")
}
  

 Fügen Sie Bilder in Word-DOCX-Dateien ein

Die Open-Source-Bibliothek unioffice bietet Softwareentwicklern die Möglichkeit, Bilder in Microsoft Word-Dokumenten zu verwenden. Es unterstützt Funktionen wie das Einfügen von Bildern an der Stelle Ihrer Wahl, das Ändern eines vorhandenen Bildes, das Umbrechen von Text um das Bild, das Löschen des Bildes und vieles mehr. Um ein Bild hinzuzufügen, müssen Sie den Namen und den Ort des Bildes angeben.

Verwalten von Bildern in Word-Dokumenten über 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")
}
  

Kopf- und Fußzeile zu Word-Dokument hinzufügen

Kopf- und Fußzeilen können verwendet werden, um die Informationen einzuschließen, die Benutzer auf jeder Seite eines Dokuments anzeigen möchten, z. B. den Namen des Autors, den Titel des Dokuments oder Seitenzahlen. Die Unioffice-Bibliothek ermöglicht Softwareentwicklern das einfache Hinzufügen von Kopf- und Fußzeilen zu Word-Dokumenten. Es ermöglicht auch unterschiedliche Kopf- und Fußzeilen je nach Dokumentabschnitt. Es enthielt auch Unterstützung für gerade, ungerade und erste Funktionen.

Fügen Sie Kopf & Fuß zu Word Dokument über 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")
}
  

Arbeiten mit Tabellen in Word DOCX

Die Open-Source-Bibliothek unioffice ermöglicht Computerprogrammierern das Hinzufügen und Ändern von Tabellen in Word-Dokumenten. Tabellen sind sehr nützlich und können verwendet werden, um Daten besser zu organisieren und darzustellen. Es unterstützt das Hinzufügen einer Tabelle mit und ohne Rahmen sowie das einfache Erstellen eines Tabellenstils. Sie können Inhalte einfach in einer Tabelle platzieren und die Größe Ihren Bedürfnissen anpassen.

 Deutsch