Cách tải bảng tính trong Go
Aspose.Cells FOSS cho Go tải một workbook .xlsx hiện có vào bộ nhớ như một Workbook, cho phép bạn truy cập đầy đủ vào các worksheet và ô của nó thông qua thư viện chuẩn API. Cài đặt module bằng go get trước khi bắt đầu.
Hướng dẫn từng bước
Bước 1: Cài đặt gói
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26Xác minh phiên bản module trong go.mod của bạn sau khi cài đặt.
Bước 2: Nhập các lớp cần thiết
import (
cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)Bước 3: Tạo và Điền Dữ liệu vào Workbook để tải
Ví dụ này đầu tiên tạo một workbook để có một tệp .xlsx thực tế để tải — trong mã của bạn, thay thế đường dẫn bằng một bảng tính hiện có:
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")Bước 4: Đọc Giá trị Ô từ Worksheet đã tải
Truy cập worksheet đầu tiên thông qua Worksheets[0] và đọc các ô riêng lẻ bằng 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)Bước 5: Liệt kê Tất cả các Ô đã được điền
Sử dụng Cells().All() khi bạn cần lặp qua mọi ô đã được đặt, thay vì đọc từng tham chiếu đã biết một cách riêng lẻ:
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)
}Các Vấn đề Thường gặp và Cách khắc phục
Get trả về lỗi cho một tham chiếu ô. Tham chiếu chưa được thiết lập trong bộ sưu tập. Xác nhận ô đã được ghi bằng Set, hoặc kiểm tra giá trị trả về error một cách rõ ràng trước khi sử dụng ô.
Các giá trị có vẻ là kiểu sai. Cell.Value phản ánh bất kỳ kiểu nào đã được truyền vào Set (string, int, float64, v.v.) — kiểm tra nó bằng một type switch nếu bạn cần phân nhánh dựa trên kiểu Go bên dưới.
Bảng tính đã tải không có dữ liệu trên trang tính dự kiến. Xác nhận bạn đang đánh chỉ mục mục nhập đúng trong Worksheets — một workbook có thể có hơn một worksheet, và dữ liệu mục tiêu có thể không ở trên Worksheets[0].
Câu hỏi thường gặp
Việc tải một sổ làm việc có yêu cầu tệp gốc vẫn tồn tại trên đĩa không?
Có — Workbook đọc từ đường dẫn tệp bạn cung cấp. Giữ tệp nguồn có thể truy cập trong suốt quá trình tải.
Tôi có thể sửa đổi một ô sau khi tải và lưu lại các thay đổi không?
Có — Cells().Set hoạt động trên một sổ làm việc đã tải giống như trên một sổ mới tạo; gọi lại Save để ghi các thay đổi của bạn.
Có cách nào để tránh tải toàn bộ tệp vào bộ nhớ không?
Có — sử dụng StreamingReader.ProcessRows cho các tệp lớn khi bạn chỉ cần đọc các hàng theo thứ tự tuần tự thay vì tải toàn bộ workbook.