Библиотека Go с отворен код за създаване на Excel XLSX файлове
Четете, пишете, редактирайте Microsoft Excel XLSX документи чрез Open Source Go API. Добавете множество диаграми, изображения и таблици във вашите електронни таблици.
Unioffice е чиста go библиотека с отворен код, която дава възможност на разработчиците на софтуер да генерират, модифицират и манипулират документи на Office Excel XLSX в техните собствени Go приложения. Библиотеката е много стабилна и осигурява най-висока степен на продуктивност с много малко усилия и разходи.
Библиотеката unioffice с отворен код поддържа напълно няколко важни функции, свързани със създаването и модификациите на електронни таблици в Excel, като създаване на нови листове в Excel от нулата, създаване на клетки с различни формати за число/дата/час, форматиране на клетки на Excel, поддръжка за валидиране на клетки, извличане на стойности на клетки както е форматиран от Excel, условно форматиране, обединяване и премахване на обединяването на клетки, валидиране на данни, включително падащи падащи полета, вградени изображения и много други.
Първи стъпки с 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. Библиотеката включва поддръжка за условно форматиране на клетки, стил, градиенти, икони, лента с данни и много други, които предстоят.