Biblioteca Go de código abierto para crear archivos XLSX de Excel
Lea, escriba, edite documentos de Microsoft Excel XLSX a través de Open Source Go API. Agregue múltiples gráficos, imágenes y tablas dentro de sus hojas de cálculo.
Unioffice es una biblioteca Go pura de código abierto que brinda a los desarrolladores de software la capacidad de generar, modificar y manipular documentos Office Excel XLSX dentro de sus propias aplicaciones Go. La biblioteca es muy estable y proporciona el más alto grado de productividad con muy poco esfuerzo y costo.
La biblioteca unioffice de código abierto es totalmente compatible con varias funciones importantes relacionadas con la creación y modificación de hojas de cálculo de Excel, como la creación de nuevas hojas de Excel desde cero, la creación de celdas con varios formatos de número/fecha/hora, formato de celdas de Excel, soporte de validación de celdas, recuperación de valores de celdas con formato de Excel, formato condicional, combinar y separar celdas, validación de datos, incluidos menús desplegables de cuadros combinados, imágenes incrustadas y mucho más.
Primeros pasos con unioffice
La forma recomendada de incluir unioffice en su proyecto es mediante Github. Utilice el siguiente comando para una instalación sin problemas.
Instalar unioffice a través de GitHub
go get github.com/unidoc/unioffice/
go build -i github.com/unidoc/unioffice/...
Creación de Excel XLSX a través de Go API
La biblioteca de código abierto unioffice permite a los programadores de computadoras crear una hoja de cálculo Excel XLSX dentro de sus propias aplicaciones Go. Le brinda la capacidad de agregar una nueva hoja a sus documentos de Excel existentes y asignar un nombre a una hoja y guardar el archivo en la ruta que elija. También brinda soporte para varias funciones importantes, como agregar nuevas filas y columnas a una hoja, definir el número de filas y columnas, establecer el valor predeterminado de una celda y más. También puede abrir y modificar la hoja de cálculo existente con facilidad.
Crear Archivo Simple Excel vía Biblioteca 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")
}
Agregar múltiples gráficos a un archivo XLSX de Excel
La biblioteca unioffice ha brindado soporte para agregar gráficos a una hoja de cálculo de Excel con solo un par de líneas de código. Puede crear gráficos basados en los datos disponibles en su hoja de trabajo, así como sin la disponibilidad de ningún dato. Los gráficos le brindan la capacidad de mostrar visualmente los datos en diferentes formatos, como barras, columnas, sectores, líneas, áreas o radares, etc. Los desarrolladores pueden seleccionar fácilmente entre las opciones de gráficos disponibles y pueden controlar sus valores.
Insertar cartas múltiples a Excel File vía 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)
}
Insertar imágenes en hojas de cálculo XLSX
La biblioteca unioffice es totalmente compatible con la inclusión de imágenes en hojas de cálculo XLSX con solo un par de líneas de código Go. Admite la modificación de imágenes y la eliminación de imágenes existentes dentro de una hoja de trabajo XLSX. También proporciona opciones para insertar una imagen y establecer sus propiedades como tamaño, posición, etc., así como soporte de impresión.
Insertar Imágenes a Excel File vía 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")
}
Aplicar formato condicional en las celdas de la hoja de cálculo
El formato condicional es una característica útil que ayuda a los usuarios de Excel a aplicar un formato a una celda o rango de celdas según ciertos criterios. La biblioteca unioffice ha proporcionado una funcionalidad que permite a los desarrolladores de software aplicar formato condicional a su hoja de cálculo con solo un par de comandos Go. La biblioteca ha incluido soporte para celdas de formato condicional, estilo, degradados, íconos, barra de datos y más por venir.