Як завантажити електронну таблицю у Go
Aspose.Cells FOSS for Go завантажує існуючу .xlsx книгу у пам’ять як Workbook, надаючи вам повний доступ до її листів і клітинок через стандартну бібліотеку API. Встановіть модуль за допомогою go get перед початком.
Покроковий посібник
Крок 1: Встановіть пакет
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26Перевірте версію модуля у вашому go.mod після встановлення.
Крок 2: Імпортуйте необхідні класи
import (
cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)Крок 3: Створити та заповнити робочий зошит для завантаження
Цей приклад спочатку створює робочий зошит, щоб мати реальний файл .xlsx для завантаження — у вашому власному коді замініть шлях на існуючу електронну таблицю:
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")Крок 4: Зчитати значення клітинок із завантаженого листа
Отримайте доступ до першого листа через Worksheets[0] і зчитайте окремі клітинки за допомогою 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)Крок 5: Перелічити всі заповнені клітинки
Використовуйте Cells().All(), коли потрібно пройтися по кожній встановленій клітинці, а не зчитувати відомі посилання по одній:
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)
}Поширені проблеми та вирішення
Get повертає помилку для посилання на клітинку. Посилання ще не було встановлено в колекції. Підтвердіть, що клітинка була записана за допомогою Set, або перевірте повернене error явно перед використанням клітинки.
Значення виглядають як неправильний тип. Cell.Value відображає будь-який тип, який був переданий у Set (string, int, float64 тощо) — проаналізуйте його за допомогою type switch, якщо потрібно розгалужуватись за базовим типом Go.
Завантажена робоча книга не містить даних на очікуваному листі. Підтвердіть, що ви індексуєте правильний запис у Worksheets — робоча книга може містити більше одного аркуша, і цільові дані можуть не бути на Worksheets[0].
Часті запитання
Чи потрібно, щоб оригінальний файл залишався на диску під час завантаження книги?
Так — Workbook читає з вказаного вами шляху до файлу. Тримайте вихідний файл доступним протягом усього процесу завантаження.
Чи можу я змінити клітинку після завантаження та зберегти зміни?
Так — Cells().Set працює з завантаженою книгою так само, як і з новоствореною; викличте Save ще раз, щоб записати ваші зміни.
Чи є спосіб уникнути завантаження всього файлу в пам’ять?
Так — використовуйте StreamingReader.ProcessRows для великих файлів, коли потрібно лише послідовно читати рядки, а не завантажувати всю книгу.