Aspose.Cells FOSS for Go là một thư viện miễn phí, mã nguồn mở để làm việc với các tệp bảng tính Excel trong các ứng dụng Go. Cài đặt nó bằng go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 và bắt đầu tạo workbook, đọc và ghi ô, áp dụng kiểu dáng, thêm kiểm tra dữ liệu, và xuất ra CSV, mà không cần Microsoft Excel hay bất kỳ phụ thuộc nào của Office.
Thư viện cung cấp một API Go nhỏ, mang tính idiomatic, được xây dựng xung quanh Workbook, Worksheet, Cells, và Cell. Truy cập các ô thông qua bộ sưu tập Cells() với Get/Set/Remove, nhóm định dạng thành các đối tượng Style có thể tái sử dụng được tạo từ Font, Fill, Alignment, và Border, và xây dựng các phạm vi Table có cấu trúc với một hàng tiêu đề và kiểu bảng có tên. Một StreamingReader chuyên dụng đọc các workbook .xlsx từng hàng một thông qua callback, do đó các tệp lớn có thể được xử lý mà không cần tải toàn bộ sheet vào bộ nhớ.
go.mod không khai báo bất kỳ phụ thuộc bên ngoài nào — thư viện được xây dựng hoàn toàn dựa trên thư viện chuẩn của Go. Nó được cấp phép MIT, được lưu trữ trên GitHub, và cài đặt bằng một lệnh go get duy nhất; không có cgo, không có thư viện Office gốc, và không có gói hệ thống nào cần cấu hình. Đối với dòng sản phẩm doanh nghiệp, xem Aspose.Cells — Enterprise Product Family.
Cells().Get(ref) / Cells().Set(ref, value).Cell.SetFormula/GetFormula lưu chuỗi công thức vào ô — được Excel hoặc LibreOffice tính toán khi mở, không phải bởi thư viện khi lưu.Workbook.ExportToCSV/ImportFromCSV và Worksheet.ToCSV/FromCSV chuyển đổi giữa XLSX và CSV.StreamingReader.ProcessRows truyền dữ liệu worksheet hàng từng hàng thông qua một callback, cho phép xử lý tệp lớn mà không cần tải toàn bộ sheet vào bộ nhớ.Workbook.SetPassword/VerifyPassword bảo vệ và kiểm tra mật khẩu workbook.StreamingReader thay vì tải toàn bộ vào bộ nhớ.Font (tên, kích thước, in đậm, in nghiêng, màu), Fill (loại, màu), Alignment (ngang, dọc, ngắt dòng), và Border (trên/dưới/trái/phải, màu) thành một Style có thể tái sử dụng, áp dụng bằng Cell.SetStyle.Worksheet.AddDataValidation gắn các quy tắc xác thực danh sách và phạm vi số nguyên, mỗi quy tắc có tiêu đề lỗi tùy chỉnh, thông báo và kiểu lỗi.Worksheet.AddTable/GetTable tạo một phạm vi Table có cấu trúc với một hàng tiêu đề tùy chọn và một kiểu bảng có tên.Worksheet.AddPicture nhúng một Picture hình ảnh với vị trí SetAnchor(row, col).Aspose.Cells FOSS for Go được cài đặt bằng một lệnh go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 duy nhất. go.mod không có mục require — không có phụ thuộc bên ngoài nào để kiểm tra hoặc vendor.
Giao diện API được thiết kế cố ý gọn gàng: Workbook, Worksheet, Cells, Cell, Style, và một vài kiểu hỗ trợ bao phủ việc tạo bảng tính, tạo kiểu, xác thực và I/O CSV/streaming. Codebase được cấp phép MIT và được lưu trữ trên GitHub.
Cài đặt bằng go get, tạo một Workbook, truy cập Worksheet đầu tiên, và ghi giá trị trực tiếp vào các ô thông qua bộ sưu tập Cells() trước khi lưu.
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26func main() {
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Hello")
ws.Cells().Set("B1", "World")
ws.Cells().Set("A2", "Answer")
ws.Cells().Set("B2", 42)
outPath := "outputfiles/basic.xlsx"
if err := wb.Save(outPath); err != nil {
fmt.Printf("Error saving workbook: %v\n", err)
return
}
fmt.Printf("Workbook saved to %s\n", outPath)
}
Gắn một xác thực kiểu danh sách (một danh sách thả xuống các giá trị cho phép) và một xác thực phạm vi số nguyên cho hai cột khác nhau, mỗi cột có tiêu đề và thông báo lỗi riêng.
func main() {
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Fruit")
ws.Cells().Set("A2", "Apple")
ws.Cells().Set("A3", "Banana")
dv := &cells_foss.DataValidation{
Type: cells_foss.DataValidationTypeList,
Formula1: `"Apple,Banana,Cherry,Dragonfruit"`,
AllowBlank: true,
ShowErrorMessage: true,
ErrorTitle: "Invalid Fruit",
ErrorMessage: "Please pick a fruit from the list.",
ErrorStyle: cells_foss.ErrorStyleStop,
}
if err := ws.AddDataValidation("A2:A10", dv); err != nil {
fmt.Printf("Error: %v\n", err)
return
}
dv2 := &cells_foss.DataValidation{
Type: cells_foss.DataValidationTypeWhole,
Formula1: "1",
Formula2: "100",
ShowErrorMessage: true,
ErrorTitle: "Invalid Value",
ErrorMessage: "Enter a whole number between 1 and 100.",
ErrorStyle: cells_foss.ErrorStyleWarning,
}
ws.Cells().Set("B1", "Score (1-100)")
ws.AddDataValidation("B2:B10", dv2)
outPath := "outputfiles/data_validation.xlsx"
if err := wb.Save(outPath); err != nil {
fmt.Printf("Error saving workbook: %v\n", err)
return
}
fmt.Printf("Workbook saved to %s\n", outPath)
}
StreamingReader đọc một worksheet từng dòng một thông qua một callback, vì vậy một workbook có hàng ngàn dòng không bao giờ phải được tải đầy đủ vào bộ nhớ.
func main() {
genPath := "outputfiles/streaming_data.xlsx"
sr := cells_foss.NewStreamingReader(genPath)
rowCount := 0
var totalScore float64
err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
rowCount++
if rowIdx == 1 {
fmt.Printf(" Header: %v\n", cells)
return nil
}
if score, ok := cells["C"+fmt.Sprint(rowIdx)]; ok {
var s float64
fmt.Sscanf(score, "%f", &s)
totalScore += s
}
return nil
})
if err != nil {
fmt.Fprintf(os.Stderr, "Error streaming: %v\n", err)
os.Exit(1)
}
fmt.Printf("Streamed %d rows (header + %d data rows)\n", rowCount, rowCount-1)
}
Aspose.Cells FOSS for Go được phát hành dưới giấy phép MIT, cho phép sử dụng thương mại và nguồn mở.
Có. MIT License cho phép sử dụng thương mại mà không có nghĩa vụ tiết lộ mã nguồn của bạn, miễn là thông báo bản quyền gốc được giữ lại.
Thêm nó như một phụ thuộc module Go bằng go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26. Yêu cầu Go 1.24 trở lên.
Không. go.mod không khai báo bất kỳ mục require nào — thư viện được xây dựng hoàn toàn trên thư viện chuẩn của Go.
Có. StreamingReader.ProcessRows đọc một worksheet theo từng hàng thông qua một callback, tránh việc tải toàn bộ vào bộ nhớ.