1. Produkter
  2.   Regneark
  3.   GO
  4.   unioffice
 
  

Open Source Go Library for å lage Excel XLSX-filer

Les, skriv, rediger Microsoft Excel XLSX-dokumenter via Open Source Go API. Legg til flere diagrammer, bilder og tabeller i regnearkene dine. 

Unioffice er et ren go-bibliotek med åpen kildekode som gir programvareutviklere muligheten til å generere, modifisere og manipulere Office Excel XLSX-dokumenter i sine egne Go-applikasjoner. Biblioteket er veldig stabilt og gir den høyeste grad av produktivitet med svært liten innsats og kostnad.

Unioffice-biblioteket med åpen kildekode støtter fullt ut flere viktige funksjoner knyttet til opprettelse og modifikasjoner av Excel-regneark, som å lage nye Excel-ark fra bunnen av, lage celler med forskjellige tall/dato/tidsformater, Excel-celleformatering, støtte for cellevalidering, hente celleverdier som formatert av Excel, betinget formatering, Slå sammen og opphev sammenslåing av celler, datavalidering inkludert rullegardinmenyene for kombinasjonsbokser, innebygde bilder og mye mer.

Previous Next

Komme i gang med unioffice

Den anbefalte måten å unioffice inn i prosjektet ditt er å bruke Github. Bruk følgende kommando for en jevn installasjon.

Installer unioffice via GitHub

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

Excel XLSX Creation via Go API

Open source-biblioteket unioffice lar dataprogrammerere lage et Excel XLSX-regneark i sine egne Go-applikasjoner. Det gir deg muligheten til å legge til et nytt ark i eksisterende Excel-dokumenter og gi et navn til et ark og lagre filen på banen du ønsker. Den gir også støtte for flere viktige funksjoner som å legge til nye rader og kolonner i et ark, definere antall rader og kolonner, angi standardverdien for en celle og mer. Du kan også enkelt åpne og endre det eksisterende regnearket.

Lag enkel Excel-fil 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")
} 

Legg til flere diagrammer til en Excel XLSX-fil

Unioffice-biblioteket har gitt støtte for å legge til diagrammer i et Excel-regneark med bare et par linjer med kode. Du kan lage diagrammer basert på tilgjengelige data i regnearket ditt, så vel som uten tilgjengelige data i det hele tatt. Diagrammer gir deg muligheten til å vise data visuelt i forskjellige formater som søyle, kolonne, sektor, linje, område eller radar osv. Utviklere kan enkelt velge fra de tilgjengelige kartalternativene og kontrollere verdiene deres.

Sett inn flere diagrammer til Excel-fil via Go API

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

Sett inn bilder i XLSX-regneark

Unioffice-biblioteket støtter fullt ut inkludering av bilder i XLSX-regneark med bare et par linjer med Go-kode. Den støtter endring av bilder samt sletting av eksisterende bilder i et XLSX-regneark. Den gir også muligheter for å sette inn et bilde og angi dets egenskaper som størrelse, posisjon osv. samt utskriftsstøtte.

Sett inn bilder til Excel-fil 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")
}

Bruk betinget formatering på regnearkets celler

Betinget formatering er en nyttig funksjon som hjelper Excel-brukere å bruke et format på en celle eller et celleområde basert på bestemte kriterier. Unioffice-biblioteket har gitt funksjonalitet som gjør det mulig for programvareutviklere å bruke betinget formatering på regnearket med bare et par Go-kommandoer. Biblioteket har inkludert støtte for betinget formatering av celler, styling, gradienter, ikoner, datalinje og mer som kommer.

 Norsk