Як завантажити електронну таблицю у Go

Як завантажити електронну таблицю у 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 для великих файлів, коли потрібно лише послідовно читати рядки, а не завантажувати всю книгу.

Дивіться також

 Українська