Open-Source-Go-Bibliothek zum Erstellen von Excel-XLSX-Dateien

Lesen, schreiben, bearbeiten Sie Microsoft Excel XLSX-Dokumente über Open Source Go API. Fügen Sie mehrere Diagramme, Bilder und Tabellen in Ihre Tabellenkalkulationen ein. 

Unioffice ist eine reine Open-Source-Go-Bibliothek, die Softwareentwicklern die Möglichkeit gibt, Office Excel XLSX-Dokumente in ihren eigenen Go-Anwendungen zu generieren, zu ändern und zu manipulieren. Die Bibliothek ist sehr stabil und bietet ein Höchstmaß an Produktivität bei sehr geringem Aufwand und Kosten.

Die Open-Source-Unioffice-Bibliothek unterstützt mehrere wichtige Funktionen im Zusammenhang mit der Erstellung und Änderung von Excel-Tabellen vollständig, z wie von Excel formatiert, bedingte Formatierung, Zellen verbinden und trennen, Datenvalidierung einschließlich Dropdown-Menüs für Kombinationsfelder, eingebettete Bilder und vieles mehr.

Previous Next

Erste Schritte mit unioffice

Die empfohlene Möglichkeit, unioffice in Ihr Projekt einzufügen, 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/... 

Excel XLSX-Erstellung über die Go-API

Die Open-Source-Bibliothek unioffice ermöglicht Computerprogrammierern, eine Excel-XLSX-Tabelle in ihren eigenen Go-Anwendungen zu erstellen. Es gibt Ihnen die Möglichkeit, Ihren bestehenden Excel-Dokumenten ein neues Blatt hinzuzufügen, einem Blatt einen Namen zuzuweisen und die Datei unter dem Pfad Ihrer Wahl zu speichern. Es bietet auch Unterstützung für mehrere wichtige Funktionen wie das Hinzufügen neuer Zeilen und Spalten zu einem Blatt, das Definieren der Anzahl von Zeilen und Spalten, das Festlegen des Standardwerts einer Zelle und mehr. Sie können auch die vorhandene Tabelle problemlos öffnen und ändern.

Create Simple Excel File via Go Library

func main() {
	ss := spreadsheet.New()
	defer ss.Close()
	// add a single sheet
	sheet := ss.AddSheet()
	// rows
	for r := 0; r < 5; r++ {
		row := sheet.AddRow()
		// and cells
		for c := 0; c < 5; c++ {
			cell := row.AddCell()
			cell.SetString(fmt.Sprintf("row %d cell %d", r, c))
		}
	}
	if err := ss.Validate(); err != nil {
		log.Fatalf("error validating sheet: %s", err)
	}
	ss.SaveToFile("simple.xlsx")
} 

Hinzufügen mehrerer Diagramme zu einer Excel-XLSX-Datei

Die Unioffice-Bibliothek bietet Unterstützung für das Hinzufügen von Diagrammen zu einer Excel-Tabelle mit nur wenigen Codezeilen. Sie können Diagramme sowohl basierend auf den verfügbaren Daten in Ihrem Arbeitsblatt als auch ohne die Verfügbarkeit von Daten erstellen. Diagramme geben Ihnen die Möglichkeit, Daten in verschiedenen Formaten wie Balken, Säulen, Kreisen, Linien, Flächen oder Radar usw. visuell darzustellen. Entwickler können einfach aus den verfügbaren Diagrammoptionen auswählen und ihre Werte steuern.

Fügen Sie mehrere Charts in die Excel-Datei via Go API ein.

func main() {
	ss := spreadsheet.New()
	defer ss.Close()
	sheet := ss.AddSheet()
	// Create all of our data
	row := sheet.AddRow()
	row.AddCell().SetString("Item")
	row.AddCell().SetString("Price")
	row.AddCell().SetString("# Sold")
	row.AddCell().SetString("Total")
	for r := 0; r < 5; r++ {
		row := sheet.AddRow()
		row.AddCell().SetString(fmt.Sprintf("Product %d", r+1))
		row.AddCell().SetNumber(1.23 * float64(r+1))
		row.AddCell().SetNumber(float64(r%3 + 1))
		row.AddCell().SetFormulaRaw(fmt.Sprintf("C%d*B%d", r+2, r+2))
	}
	// Charts need to reside in a drawing
	dwng := ss.AddDrawing()
	chrt1, anc1 := dwng.AddChart(spreadsheet.AnchorTypeTwoCell)
	chrt2, anc2 := dwng.AddChart(spreadsheet.AnchorTypeTwoCell)
	addBarChart(chrt1)
	addLineChart(chrt2)
	anc1.SetWidth(9)
	anc1.MoveTo(5, 1)
	anc2.MoveTo(1, 23)
	// and finally add the chart to the sheet
	sheet.SetDrawing(dwng)
	if err := ss.Validate(); err != nil {
		log.Fatalf("error validating sheet: %s", err)
	}
	ss.SaveToFile("multiple-chart.xlsx")
}
func addBarChart(chrt chart.Chart) {
	chrt.AddTitle().SetText("Bar Chart")
	lc := chrt.AddBarChart()
	priceSeries := lc.AddSeries()
	priceSeries.SetText("Price")
	// Set a category axis reference on the first series to pull the product names
	priceSeries.CategoryAxis().SetLabelReference(`'Sheet 1'!A2:A6`)
	priceSeries.Values().SetReference(`'Sheet 1'!B2:B6`)
	soldSeries := lc.AddSeries()
	soldSeries.SetText("Sold")
	soldSeries.Values().SetReference(`'Sheet 1'!C2:C6`)
	totalSeries := lc.AddSeries()
	totalSeries.SetText("Total")
	totalSeries.Values().SetReference(`'Sheet 1'!D2:D6`)
	// the line chart accepts up to two axes
	ca := chrt.AddCategoryAxis()
	va := chrt.AddValueAxis()
	lc.AddAxis(ca)
	lc.AddAxis(va)
	ca.SetCrosses(va)
	va.SetCrosses(ca)
}

Bilder in XLSX-Tabellen einfügen

Die unioffice-Bibliothek unterstützt vollständig die Einbindung von Bildern in XLSX-Tabellen mit nur ein paar Zeilen Go-Code. Es unterstützt das Ändern von Bildern sowie das Löschen vorhandener Bilder in einem XLSX-Arbeitsblatt. Es bietet auch Optionen zum Einfügen eines Bildes und zum Festlegen seiner Eigenschaften wie Größe, Position usw. sowie Druckunterstützung.

Fügen Sie Bilder in Excel-Datei via Go API

func main() {
	ss := spreadsheet.New()
	defer ss.Close()
	// add a single sheet
	sheet := ss.AddSheet()
	img, err := common.ImageFromFile("gophercolor.png")
	if err != nil {
		log.Fatalf("unable to create image: %s", err)
	}
	iref, err := ss.AddImage(img)
	if err != nil {
		log.Fatalf("unable to add image to workbook: %s", err)
	}
	dwng := ss.AddDrawing()
	sheet.SetDrawing(dwng)
	for i := float64(0); i < 360; i += 30 {
		anc := dwng.AddImage(iref, spreadsheet.AnchorTypeAbsolute)
		ang := i * math.Pi / 180
		x := 2 + 2*math.Cos(ang)
		y := 2 + +2*math.Sin(ang)
		anc.SetColOffset(measurement.Distance(x) * measurement.Inch)
		anc.SetRowOffset(measurement.Distance(y) * measurement.Inch)
		// set the image to 1x1 inches
		var w measurement.Distance = 1 * measurement.Inch
		anc.SetWidth(w)
		anc.SetHeight(iref.RelativeHeight(w))
	}
	if err := ss.Validate(); err != nil {
		log.Fatalf("error validating sheet: %s", err)
	}
	ss.SaveToFile("image.xlsx")
}

Wenden Sie die bedingte Formatierung auf die Zellen der Tabelle an

Die bedingte Formatierung ist eine nützliche Funktion, die Excel-Benutzern hilft, ein Format basierend auf bestimmten Kriterien auf eine Zelle oder einen Zellbereich anzuwenden. Die Unioffice-Bibliothek hat Funktionen bereitgestellt, die es Softwareentwicklern ermöglichen, mit nur ein paar Go-Befehlen eine bedingte Formatierung auf ihre Tabellenkalkulation anzuwenden. Die Bibliothek hat Unterstützung für die bedingte Formatierung von Zellen, Stilen, Farbverläufen, Symbolen, Datenleisten und mehr enthalten.

 Deutsch