Cómo cargar una hoja de cálculo en Go
Aspose.Cells FOSS para Go carga un libro de trabajo .xlsx existente en memoria como un Workbook, dándote acceso completo a sus hojas de cálculo y celdas a través del API de la biblioteca estándar. Instala el módulo con go get antes de comenzar.
Guía paso a paso
Paso 1: Instalar el paquete
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26Verifica la versión del módulo en tu go.mod después de instalar.
Paso 2: Importar las clases requeridas
import (
cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)Paso 3: Crear y poblar un libro de trabajo para cargar
Este ejemplo primero crea un libro de trabajo para disponer de un archivo .xlsx real para cargar — en su propio código, reemplace la ruta por una hoja de cálculo existente:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Product")
ws.Cells().Set("B1", "Price")
ws.Cells().Set("A2", "Widget A")
ws.Cells().Set("B2", 12.99)
wb.Save("outputfiles/products.xlsx")Paso 4: Leer valores de celdas de la hoja de cálculo cargada
Acceda a la primera hoja de cálculo a través de Worksheets[0] y lea celdas individuales con Cells().Get(ref):
wb := cells_foss.NewWorkbook()
wb.Worksheets[0].Cells().Set("B2", 12.99)
ws2 := wb.Worksheets[0]
cell, err := ws2.Cells().Get("B2")
if err != nil {
fmt.Printf("Error reading cell: %v\n", err)
return
}
fmt.Printf("Price: %v\n", cell.Value)Paso 5: Enumerar todas las celdas pobladas
Utilice Cells().All() cuando necesite iterar sobre cada celda que se haya establecido, en lugar de leer referencias conocidas una a una:
wb := cells_foss.NewWorkbook()
ws2 := wb.Worksheets[0]
ws2.Cells().Set("A1", "Product")
allCells := ws2.Cells().All()
for ref, c := range allCells {
fmt.Printf("%s = %v\n", ref, c.Value)
}Problemas comunes y soluciones
Get devuelve un error por una referencia a una celda. La referencia aún no se ha establecido en la colección. Confirma que la celda fue escrita con Set, o verifica el valor devuelto error explícitamente antes de usar la celda.
Los valores parecen ser del tipo incorrecto. Cell.Value refleja cualquier tipo que se haya pasado a Set (string, int, float64, etc.) — inspecciónalo con un type switch si necesitas ramificar según el tipo subyacente de Go.
El libro de trabajo cargado no tiene datos en la hoja esperada. Confirme que está indexando la entrada correcta en Worksheets — un libro de trabajo puede tener más de una hoja de cálculo, y los datos objetivo pueden no estar en Worksheets[0].
Preguntas frecuentes
¿Cargar un libro de trabajo requiere que el archivo original siga existiendo en el disco?
Sí — Workbook lee desde la ruta de archivo que proporcione. Mantenga el archivo fuente accesible durante la carga.
¿Puedo modificar una celda después de cargar y guardar los cambios de nuevo?
Sí — Cells().Set funciona en un libro de trabajo cargado de la misma manera que lo hace en uno recién creado; llame a Save de nuevo para escribir sus cambios.
¿Existe alguna forma de evitar cargar todo el archivo en la memoria?
Sí — usa StreamingReader.ProcessRows para archivos grandes donde solo necesitas leer filas secuencialmente en lugar de cargar todo el libro de trabajo.