1. Producten
  2.   Spreadsheet
  3.   GO
  4.   unioffice
 
  

Open Source Go-bibliotheek voor het maken van Excel XLSX-bestanden

Lees, schrijf en bewerk Microsoft Excel XLSX-documenten via Open Source Go API. Voeg meerdere grafieken, afbeeldingen en tabellen toe aan uw spreadsheets. 

Unioffice is een open source pure go-bibliotheek die softwareontwikkelaars de mogelijkheid biedt om Office Excel XLSX-documenten in hun eigen Go-applicaties te genereren, wijzigen en manipuleren. De bibliotheek is zeer stabiel en biedt de hoogste mate van productiviteit met zeer weinig inspanning en kosten.

De open source unioffice-bibliotheek biedt volledige ondersteuning voor verschillende belangrijke functies met betrekking tot het maken en wijzigen van Excel-spreadsheets, zoals het maken van nieuwe Excel-bladen vanaf het begin, het maken van cellen met verschillende getal-/datum-/tijdnotaties, Excel-celopmaak, ondersteuning voor celvalidatie, celwaarden ophalen zoals opgemaakt door Excel, voorwaardelijke opmaak, cellen samenvoegen en ongedaan maken, gegevensvalidatie inclusief vervolgkeuzelijsten met keuzelijsten, ingesloten afbeeldingen en nog veel meer.

Previous Next

Aan de slag met unioffice

De aanbevolen manier om unioffice in uw project te integreren, is door Github te gebruiken. Gebruik de volgende opdracht voor een vlotte installatie.

Unioffice installeren via GitHub

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

Excel XLSX-creatie via Go-API

Met de open source-bibliotheek unioffice kunnen computerprogrammeurs een Excel XLSX-spreadsheet maken in hun eigen Go-applicaties. Het geeft u de mogelijkheid om een nieuw blad toe te voegen aan uw bestaande Excel-documenten en een naam toe te kennen aan een blad en het bestand op te slaan op het pad van uw keuze. Het biedt ook ondersteuning voor verschillende belangrijke functies, zoals het toevoegen van nieuwe rijen en kolommen aan een blad, het definiëren van het aantal rijen en kolommen, het instellen van de standaardwaarde van een cel en meer. U kunt de bestaande spreadsheet ook gemakkelijk openen en wijzigen.

Creëer Simple Excel File via Go bibliotheek

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")
} 

Meerdere grafieken toevoegen aan een Excel XLSX-bestand

De unioffice-bibliotheek heeft ondersteuning geboden voor het toevoegen van grafieken aan een Excel-spreadsheet met slechts een paar regels code. U kunt grafieken maken op basis van de beschikbare gegevens in uw werkblad en ook zonder de beschikbaarheid van gegevens. Met diagrammen kunt u gegevens visueel weergeven in verschillende indelingen, zoals staaf, kolom, cirkel, lijn, gebied of radar, enz. Ontwikkelaars kunnen eenvoudig kiezen uit de beschikbare diagramopties en hun waarden bepalen.

Vertaling:

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)
}

Afbeeldingen invoegen in XLSX-spreadsheets

De unioffice-bibliotheek ondersteunt het opnemen van afbeeldingen in XLSX-spreadsheets volledig met slechts een paar regels Go-code. Het ondersteunt het wijzigen van afbeeldingen en het verwijderen van bestaande afbeeldingen in een XLSX-werkblad. Het biedt ook opties om een afbeelding in te voegen en de eigenschappen ervan in te stellen, zoals grootte, positie, enz., evenals afdrukondersteuning.

Vertaling:

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")
}

Voorwaardelijke opmaak toepassen op spreadsheetcellen

Voorwaardelijke opmaak is een handige functie waarmee Excel-gebruikers een opmaak kunnen toepassen op een cel of een celbereik op basis van bepaalde criteria. De unioffice-bibliotheek heeft functionaliteit geboden waarmee softwareontwikkelaars voorwaardelijke opmaak op hun spreadsheet kunnen toepassen met slechts een paar Go-commando's. De bibliotheek biedt ondersteuning voor het voorwaardelijk opmaken van cellen, opmaak, verlopen, pictogrammen, gegevensbalk en nog veel meer.

 Dutch