1. Produk
  2.   Aspose.Cells
  3.   Aspose.Cells FOSS for Go

Aspose.Cells FOSS untuk Go

Buat, ubah, dan ekspor spreadsheet Excel dari Go — gratis dan sumber terbuka, tanpa ketergantungan eksternal.

Perpustakaan Go Sumber Terbuka untuk Spreadsheet Excel

Aspose.Cells FOSS for Go adalah perpustakaan gratis dan sumber terbuka untuk bekerja dengan file spreadsheet Excel dalam aplikasi Go. Instal dengan go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 dan mulailah membuat workbook, membaca dan menulis sel, menerapkan gaya, menambahkan validasi data, serta mengekspor ke CSV, tanpa memerlukan Microsoft Excel atau ketergantungan Office apa pun.

Perpustakaan ini menyediakan API Go yang kecil dan idiomatik yang dibangun di sekitar Workbook, Worksheet, Cells, dan Cell. Akses sel melalui koleksi Cells() dengan Get/Set/Remove, kelompokkan pemformatan ke dalam objek Style yang dapat digunakan kembali yang dibangun dari Font, Fill, Alignment, dan Border, serta buat rentang Table terstruktur dengan baris header dan gaya tabel bernama. StreamingReader khusus membaca workbook .xlsx baris demi baris melalui callback, sehingga file besar dapat diproses tanpa memuat seluruh sheet ke memori.

go.mod tidak mendeklarasikan dependensi eksternal — perpustakaan ini dibangun sepenuhnya di atas pustaka standar Go. Ini berlisensi MIT, dihosting di GitHub, dan diinstal dengan satu perintah go get; tidak ada cgo, tidak ada perpustakaan Office native, dan tidak ada paket sistem yang perlu dikonfigurasi. Untuk keluarga produk enterprise, lihat Aspose.Cells — Enterprise Product Family.

Baca dan Tulis File Excel

  • Akses Sel: Baca dan tulis nilai dengan Cells().Get(ref) / Cells().Set(ref, value).
  • Formula: Cell.SetFormula/GetFormula menyimpan string formula di sel — dievaluasi oleh Excel atau LibreOffice saat dibuka, bukan oleh pustaka saat disimpan.
  • Interoperabilitas CSV: Workbook.ExportToCSV/ImportFromCSV dan Worksheet.ToCSV/FromCSV mengonversi antara XLSX dan CSV.
  • Baca streaming: StreamingReader.ProcessRows men-stream lembar kerja baris demi baris melalui callback, untuk pemrosesan file besar tanpa memuat seluruh lembar ke memori.
  • Proteksi kata sandi: Workbook.SetPassword/VerifyPassword melindungi dan memeriksa kata sandi workbook.

Di mana Aspose.Cells FOSS dapat digunakan

  • Data pipelines: Mengekspor hasil query basis data langsung ke XLSX atau CSV.
  • Report generation: Membuat laporan Excel bergaya dari layanan backend Go.
  • Large-file processing: Men-stream workbook beribu-ribu baris dengan StreamingReader alih-alih memuatnya sepenuhnya ke memori.
  • ETL workflows: Membaca lembar masuk, mentransformasi data, dan menulis workbook keluaran.
  • CI/CD automation: Menghasilkan artefak spreadsheet di dalam pipeline build berbasis Go dan container Docker.

Penggayaan, Validasi Data, dan Tabel

  • Obyek gaya: Kelompokkan Font (name, size, bold, italic, color), Fill (type, color), Alignment (horizontal, vertical, wrap text), dan Border (top/bottom/left/right, color) ke dalam Style yang dapat digunakan kembali, diterapkan dengan Cell.SetStyle.
  • Validasi data: Worksheet.AddDataValidation menambahkan aturan validasi daftar dan rentang angka bulat, masing-masing dengan judul error khusus, pesan, dan gaya error.
  • Tabel: Worksheet.AddTable/GetTable membuat rentang Table terstruktur dengan baris header opsional dan gaya tabel yang dinamai.
  • Gambar: Worksheet.AddPicture menyisipkan gambar Picture dengan posisi SetAnchor(row, col).

Pengalaman Pengembang

Aspose.Cells FOSS for Go diinstal dengan satu perintah go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26. go.mod tidak memiliki entri require — tidak ada dependensi eksternal untuk diverifikasi atau vendor.

Antarmuka API sengaja dibuat ringkas: Workbook, Worksheet, Cells, Cell, Style, dan beberapa tipe pendukung mencakup pembuatan spreadsheet, styling, validasi, dan I/O CSV/streaming. Basis kode berlisensi MIT dan dihosting di GitHub.

Buat Workbook dan Tulis Sel

Instal dengan go get, buat sebuah Workbook, akses Worksheet pertama, dan tulis nilai langsung ke sel melalui koleksi Cells() sebelum menyimpan.

go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26
func 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)
}

Tambahkan Aturan Validasi Data

Pasang validasi tipe daftar (dropdown nilai yang diizinkan) dan validasi rentang bilangan bulat pada dua kolom yang berbeda, masing-masing dengan judul dan pesan errornya sendiri.

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)
}

Alirkan Buku Kerja Besar Baris-demi-Baris

StreamingReader membaca lembar kerja satu baris pada satu waktu melalui callback, sehingga buku kerja dengan ribuan baris tidak pernah harus dimuat sepenuhnya ke dalam memori.

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)
}

Pertanyaan yang Sering Diajukan

Apa model lisensi untuk Aspose.Cells FOSS for Go?

Aspose.Cells FOSS for Go dirilis di bawah MIT License, yang mengizinkan penggunaan komersial dan open-source.

Apakah saya dapat menggunakannya dalam produk komersial?

Ya. Lisensi MIT mengizinkan penggunaan komersial tanpa kewajiban mengungkapkan kode sumber Anda sendiri, selama pemberitahuan hak cipta asli dipertahankan.

Bagaimana cara saya menginstal Aspose.Cells FOSS for Go?

Tambahkan itu sebagai dependensi modul Go dengan go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26. Membutuhkan Go 1.24 atau lebih baru.

Apakah ada dependensi eksternal?

Tidak. go.mod tidak mendeklarasikan entri require — pustaka dibangun sepenuhnya pada pustaka standar Go.

Bisakah saya memproses buku kerja besar tanpa memuatnya sepenuhnya ke memori?

Ya. StreamingReader.ProcessRows membaca lembar kerja baris demi baris melalui callback, menghindari pemuatan penuh ke memori.

  

Sumber Daya Dukungan dan Pembelajaran

 Bahasa Indonesia