Pendahuluan
Aspose.Cells FOSS untuk Go adalah perpustakaan pure-Go untuk bekerja dengan spreadsheet Excel. Ia menyediakan API untuk membuat workbook baru dari awal, menulis dan menata nilai sel, menerapkan aturan validasi data, membangun tabel terstruktur, menyematkan gambar, dan membaca file .xlsx besar satu baris pada satu waktu — semua tanpa ketergantungan native C atau C++.
Perpustakaan ini tersedia sebagai modul Go di github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go dan dirilis di bawah lisensi MIT. Instal dengan go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 ke dalam proyek Go 1.24+ apa pun.
Postingan ini membahas kemampuan inti: penataan sel, validasi data, tabel, gambar, dan pembacaan streaming.
Fitur Utama
Penataan Sel
Kelompokkan pengaturan Font, Fill, Alignment, dan Border ke dalam Style yang dapat digunakan kembali, lalu terapkan pada sel dengan Cell.SetStyle:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
boldStyle := cells_foss.NewStyle()
boldStyle.Font.Bold = true
boldStyle.Font.Size = 12
cell, _ := ws.Cells().Get("A1")
cell.SetStyle(boldStyle)
Alignment mengatur Horizontal, Vertical, dan WrapText; Border mengatur visibilitas aturan Top, Bottom, Left, dan Right serta Color.
Validasi Data
Worksheet.AddDataValidation menempelkan aturan validasi ke rentang sel. Struct DataValidation membawa aturan Type, satu atau dua nilai Formula, dan bidang pesan kesalahan:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
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,
}
ws.AddDataValidation("A2:A10", dv)
Tabel
Worksheet.AddTable membuat Table terstruktur atas rentang, dengan baris header opsional dan gaya tabel yang bernama:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Item")
ws.Cells().Set("B1", "Qty")
tbl := ws.AddTable("A1:B2")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"
Gambar
Worksheet.AddPicture menyematkan gambar; Picture.SetAnchor(row, col) menempatkannya:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
imageBytes := []byte{} // populate with real image bytes before use
pic := &cells_foss.Picture{Data: imageBytes, Format: "png"}
ws.AddPicture(pic)
pic.SetAnchor(5, 0)
Streaming File Besar
StreamingReader membaca lembar kerja baris demi baris melalui callback, sehingga workbook dengan ribuan baris tidak pernah harus dimuat sepenuhnya ke dalam memori:
sr := cells_foss.NewStreamingReader("large_workbook.xlsx")
err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
// process one row at a time
return nil
})
if err != nil {
fmt.Printf("Error streaming: %v\n", err)
}
Panduan Cepat
Instal modul:
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26Alur kerja minimal — buat sebuah workbook, tulis dua sel, tebalkan header, dan simpan:
package main
import (
"fmt"
cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)
func main() {
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Product")
ws.Cells().Set("B1", "Revenue")
boldStyle := cells_foss.NewStyle()
boldStyle.Font.Bold = true
for _, ref := range []string{"A1", "B1"} {
cell, _ := ws.Cells().Get(ref)
cell.SetStyle(boldStyle)
}
if err := wb.Save("report.xlsx"); err != nil {
fmt.Printf("Error saving workbook: %v\n", err)
return
}
fmt.Println("Workbook saved to report.xlsx")
}
Format yang Didukung
| Format | Ekstensi | Baca | Tulis |
|---|---|---|---|
| XLSX | .xlsx | — | ✓ |
| CSV | .csv | ✓ | ✓ |
Buku kerja XLSX dibangun di memori dengan NewWorkbook dan ditulis dengan Workbook.Save. CSV bersifat dua arah melalui Workbook.ImportFromCSV dan Workbook.ExportToCSV.
Sumber Terbuka & Lisensi
Aspose.Cells FOSS untuk Go dirilis di bawah lisensi MIT. Tidak ada pembatasan penggunaan, tidak ada biaya runtime, dan tidak ada persyaratan pendaftaran. Kode sumber tersedia di github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go.
Penggunaan komersial diizinkan berdasarkan ketentuan lisensi MIT. Jika proyek Anda memerlukan dukungan tingkat perusahaan, cakupan format yang diperluas, atau integrasi cloud, Aspose.Cells — Enterprise Product Family adalah penawaran komersial terpisah.