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

Open Source Go Library för att skapa Excel XLSX-filer

Läs, skriv, redigera Microsoft Excel XLSX-dokument via Open Source Go API. Lägg till flera diagram, bilder och tabeller i dina kalkylblad. 

Unioffice är ett ren go-bibliotek med öppen källkod som ger mjukvaruutvecklare möjlighet att generera, modifiera och manipulera Office Excel XLSX-dokument i sina egna Go-applikationer. Biblioteket är mycket stabilt och ger den högsta graden av produktivitet med mycket liten ansträngning och kostnad.

Unioffice-biblioteket med öppen källkod stöder fullt ut flera viktiga funktioner relaterade till att skapa och modifiera Excel-kalkylblad, som att skapa nya Excel-ark från grunden, skapa celler med olika nummer/datum/tidsformat, Excel-cellformatering, stöd för cellvalidering, Hämta cellvärden som formaterat av Excel, villkorlig formatering, sammanfoga och ta bort celler, datavalidering inklusive rullgardinsmeny för kombinationsruta, inbäddade bilder och mycket mer.

Previous Next

Komma igång med unioffice

Det rekommenderade sättet att uniofficera in i ditt projekt är att använda Github. Använd följande kommando för en smidig installation.

Installera unioffice via GitHub

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

Skapa Excel XLSX via Go API

Open source-biblioteket unioffice låter datorprogrammerare skapa ett Excel XLSX-kalkylblad i sina egna Go-applikationer. Det ger dig möjlighet att lägga till ett nytt ark till dina befintliga Excel-dokument och ge ett namn till ett ark och spara filen på den sökväg du väljer. Det ger också stöd för flera viktiga funktioner som att lägga till nya rader och kolumner i ett ark, definiera antalet rader och kolumner, ställa in standardvärdet för en cell och mer. Du kan också enkelt öppna och ändra det befintliga kalkylarket.

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

Lägg till flera diagram till en Excel XLSX-fil

Unioffice-biblioteket har gett stöd för att lägga till diagram i ett Excel-kalkylblad med bara ett par rader kod. Du kan skapa diagram baserat på tillgängliga data i ditt kalkylblad och utan att ha tillgång till någon data alls. Diagram ger dig möjlighet att visuellt visa data i olika format som stapel, kolumn, cirkel, linje, area eller radar, etc. Utvecklare kan enkelt välja från de tillgängliga diagramalternativen och kan kontrollera deras värden.

Sätt in flera diagram till 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)
}

Infoga bilder i XLSX-kalkylblad

Unioffice-biblioteket stöder fullt ut införandet av bilder i XLSX-kalkylblad med bara ett par rader Go-kod. Det stöder modifiering av bilder samt radering av befintliga bilder i ett XLSX-kalkylblad. Det ger också alternativ för att infoga en bild och ställa in dess egenskaper som storlek, position etc. samt utskriftsstöd.

Infoga bilder till 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")
}

Använd villkorlig formatering på kalkylbladets celler

Villkorlig formatering är en användbar funktion som hjälper Excel-användare att tillämpa ett format på en cell eller ett cellintervall baserat på vissa kriterier. Unioffice-biblioteket har tillhandahållit funktionalitet som gör det möjligt för mjukvaruutvecklare att tillämpa villkorlig formatering på sitt kalkylblad med bara ett par Go-kommandon. Biblioteket har inkluderat stöd för villkorlig formatering av celler, stil, gradienter, ikoner, datafält och mer som kommer.

 Svenska