Библиотека Go с отворен код за създаване на Excel XLSX файлове

Четете, пишете, редактирайте Microsoft Excel XLSX документи чрез Open Source Go API. Добавете множество диаграми, изображения и таблици във вашите електронни таблици. 

Unioffice е чиста go библиотека с отворен код, която дава възможност на разработчиците на софтуер да генерират, модифицират и манипулират документи на Office Excel XLSX в техните собствени Go приложения. Библиотеката е много стабилна и осигурява най-висока степен на продуктивност с много малко усилия и разходи.

Библиотеката unioffice с отворен код поддържа напълно няколко важни функции, свързани със създаването и модификациите на електронни таблици в Excel, като създаване на нови листове в Excel от нулата, създаване на клетки с различни формати за число/дата/час, форматиране на клетки на Excel, поддръжка за валидиране на клетки, извличане на стойности на клетки както е форматиран от Excel, условно форматиране, обединяване и премахване на обединяването на клетки, валидиране на данни, включително падащи падащи полета, вградени изображения и много други.

Previous Next

Първи стъпки с unioffice

Препоръчителният начин за unioffice във вашия проект е чрез Github. Моля, използвайте следната команда за гладка инсталация.

Инсталирайте unioffice чрез GitHub

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

Създаване на Excel XLSX чрез Go API

Библиотеката с отворен код unioffice позволява на компютърните програмисти да създават Excel XLSX електронна таблица в собствените си Go приложения. Той ви дава възможност да добавите нов лист към вашите съществуващи документи в Excel и да зададете име на лист и да запишете файла в пътя по ваш избор. Той също така осигурява поддръжка за няколко важни функции, като добавяне на нови редове и колони към лист, определяне на броя на редовете и колоните, задаване на стойността по подразбиране на клетка и др. Можете също да отваряте и променяте съществуващата електронна таблица с лекота.

Създайте прост файл на Excel чрез библиотека

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

Добавяне на множество диаграми към XLSX файл на Excel

Библиотеката unioffice предоставя поддръжка за добавяне на диаграми към електронна таблица на Excel само с няколко реда код. Можете да създавате диаграми въз основа на наличните данни във вашия работен лист, както и без наличието на каквито и да било данни. Диаграмите ви дават възможност за визуално показване на данни в различни формати като стълбовидни, колонни, кръгови, линейни, площни или радарни и т.н. Разработчиците могат лесно да избират от наличните опции за диаграми и да контролират техните стойности.

Вмъкване на множество карти в Excel файл чрез 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)
}

Вмъкване на изображения в XLSX електронни таблици

Библиотеката unioffice напълно поддържа включването на изображения в XLSX електронни таблици само с няколко реда Go код. Той поддържа модифициране на изображения, както и изтриване на съществуващи изображения в XLSX работен лист. Той също така предоставя опции за вмъкване на картина и задаване на нейните свойства като размер, позиция и т.н., както и поддръжка за печат.

Вмъкване на изображения в Excel файл чрез 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")
}

Приложете условно форматиране върху клетките на електронната таблица

Условното форматиране е полезна функция, която помага на потребителите на Excel да прилагат формат към клетка или диапазон от клетки въз основа на определени критерии. Библиотеката unioffice предоставя функционалност, която позволява на разработчиците на софтуер да прилагат условно форматиране към своята електронна таблица само с няколко команди Go. Библиотеката включва поддръжка за условно форматиране на клетки, стил, градиенти, икони, лента с данни и много други, които предстоят.

 Български