Бібліотека 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 за допомогою бібліотеки Go

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

Додайте кілька діаграм до файлу Excel XLSX

Бібліотека 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. Бібліотека включає підтримку умовного форматування комірок, стилів, градієнтів, піктограм, панелі даних тощо.

 Українська