1. Productos
  2.   Hoja de cálculo
  3.   GO
  4.   unioffice
 
  

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.

Previous Next

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.

 Español