Gambaran Fitur

Ikhtisar Fitur

Aspose.Cells FOSS untuk API Go berfokus pada Workbook, Worksheet, Cells, dan Cell. Panduan ini membahas kemampuan lain dari pustaka: styling, data validation, tables, pictures, dan streaming reads untuk file besar.


Penataan Sel

Kelompokkan 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

highlightStyle := cells_foss.NewStyle()
highlightStyle.Font.Color = "FFFFFFFF"
highlightStyle.Font.Bold = true
highlightStyle.Fill = &cells_foss.Fill{
	Type:  cells_foss.FillTypeSolid,
	Color: "FF4472C4",
}

cell, _ := ws.Cells().Get("A1")
cell.SetStyle(boldStyle)

Alignment mengontrol Horizontal, Vertical, dan WrapText; Border mengontrol Top, Bottom, Left, dan Right visibilitas aturan plus 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)

Validasi rentang bilangan bulat menggunakan DataValidationTypeWhole dengan Formula1/Formula2 sebagai batas bawah dan atas.


Tabel

Worksheet.AddTable membuat Table terstruktur atas rentang, dengan baris header opsional dan gaya tabel bernama:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

tbl := ws.AddTable("A1:F6")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"

Ambil tabel yang sudah ada berdasarkan nama dengan Worksheet.GetTable(name).


Gambar

Worksheet.AddPicture menyisipkan 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 per baris melalui callback, sehingga buku kerja dengan ribuan baris tidak pernah perlu dimuat sepenuhnya ke memori:

path := "outputfiles/large_workbook.xlsx"
sr := cells_foss.NewStreamingReader(path)
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)
}

Tips dan Praktik Terbaik

  • Gunakan StreamingReader alih-alih memuat Workbook secara lengkap ketika sebuah file mungkin memiliki ribuan baris dan Anda hanya perlu membacanya, bukan memodifikasinya.
  • Buat Style satu kali dan gunakan kembali di banyak sel daripada membuat yang baru untuk setiap sel.
  • Cell.SetFormula menyimpan string formula persis — formula dievaluasi oleh Excel atau LibreOffice saat dibuka, bukan oleh perpustakaan saat disimpan.
  • Periksa nilai kembali error dari Save, AddDataValidation, dan panggilan impor/ekspor CSV — I/O spreadsheet dapat gagal pada jalur yang tidak valid atau input yang rusak.

Masalah Umum

IssueCausePerbaiki
Nilai sel tidak terlihat setelah SetMereferensikan lembar yang salah atau referensi sel di luar jangkauanKonfirmasikan indeks Worksheet dan bahwa referensi gaya A1 cocok dengan sel yang dimaksud
Formula ditampilkan sebagai teks mentah alih-alih dihitungPustaka hanya menyimpan string formula; tidak mengevaluasi formulaBuka file di Excel atau LibreOffice, yang melakukan perhitungan saat dibuka
Validasi data tidak terlihat di ExcelValidasi ditambahkan ke rentang yang tidak mencakup sel targetPastikan string rentang (misalnya "A2:A10") mencakup sel yang Anda harapkan untuk divalidasi

FAQ

Apakah perpustakaan mengevaluasi rumusnya sendiri?

No. Cell.SetFormula/GetFormula menyimpan string formula yang dievaluasi oleh Excel atau LibreOffice ketika file dibuka.

Bisakah saya stream-write workbook besar, bukan hanya stream-read mereka?

StreamingReader mencakup pembacaan streaming. Menulis workbook besar saat ini melalui API standar in-memory Workbook/Worksheet.

Apakah AddTable secara otomatis menerapkan auto-filter?

Ini belum dikonfirmasi dalam API surface saat ini — hanya HasHeaderRow dan StyleName yang didokumentasikan sebagai Table. Verifikasi terhadap file .xlsx yang dihasilkan jika hal ini penting untuk kasus penggunaan Anda.


Ringkasan API Reference

Kelas / MetodeDeskripsi
Workbook.NewWorkbook / SaveBuat dan simpan workbook
Worksheet.CellsAkses koleksi sel untuk worksheet
Cells.Get / Set / Remove / AllBaca, tulis, hapus, dan mengenumerasi sel
Cell.SetStyle / SetFormula / GetFormulaTerapkan gaya dan rumus pada sel
Style, Font, Fill, Alignment, BorderSusun pemformatan sel yang dapat digunakan kembali
Worksheet.AddDataValidationLampirkan aturan validasi ke rentang sel
Worksheet.AddTable / GetTableBuat dan ambil rentang tabel terstruktur
Worksheet.AddPicture / Picture.SetAnchor(row, col)Sematkan dan posisikan gambar
StreamingReader.ProcessRowsStreaming lembar kerja baris per baris
Workbook.ExportToCSV / ImportFromCSVMengonversi antara XLSX dan CSV
Workbook.SetPassword / VerifyPasswordMelindungi dan memeriksa kata sandi workbook

Lihat Juga

 Bahasa Indonesia