Aspose.Cells FOSS for Go ücretsiz, açık kaynaklı bir kütüphane olup Go uygulamalarında Excel elektronik tablo dosyalarıyla çalışmak için kullanılır. go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 ile kurun ve çalışma kitapları oluşturma, hücreleri okuma ve yazma, stiller uygulama, veri doğrulama ekleme ve CSV’ye dışa aktarma işlemlerine başlayın; Microsoft Excel veya herhangi bir Office bağımlılığı gerektirmez.
Kütüphane, Workbook, Worksheet, Cells ve Cell etrafında inşa edilmiş küçük, idiomatik bir Go API sunar. Hücrelere Cells() koleksiyonu üzerinden Get/Set/Remove ile erişin, Font, Fill, Alignment ve Border öğelerinden oluşturulan yeniden kullanılabilir Style nesneleriyle biçimlendirmeyi gruplayın ve bir başlık satırı ve adlandırılmış tablo stili içeren yapılandırılmış Table aralıkları oluşturun. Özel bir StreamingReader, .xlsx çalışma kitaplarını satır satır bir geri arama (callback) aracılığıyla okur, böylece büyük dosyalar tüm sayfa belleğe yüklenmeden işlenebilir.
go.mod dış bağımlılık bildirmez — kütüphane tamamen Go standart kütüphanesi üzerine inşa edilmiştir. MIT lisanslıdır, GitHub’da barındırılır ve tek bir go get komutuyla kurulur; cgo yok, yerel Office kütüphaneleri yok ve yapılandırılacak sistem paketleri de yok. Kurumsal ürün ailesi için Aspose.Cells — Enterprise Product Family sayfasına bakın.
Cells().Get(ref) / Cells().Set(ref, value) ile okuyun ve yazın.Cell.SetFormula/GetFormula hücrede bir formül dizesi saklar — açıldığında Excel veya LibreOffice tarafından değerlendirilir, kaydetme zamanında kütüphane tarafından değil.Workbook.ExportToCSV/ImportFromCSV ve Worksheet.ToCSV/FromCSV XLSX ile CSV arasında dönüşüm yapar.StreamingReader.ProcessRows bir geri arama (callback) aracılığıyla çalışma sayfasını satır satır akıtarak, tüm sayfayı belleğe yüklemeden büyük dosyaların işlenmesini sağlar.Workbook.SetPassword/VerifyPassword çalışma kitabı şifrelerini korur ve kontrol eder.StreamingReader ile çok bin satırlı çalışma kitapları üzerinden akış yapın, tam olarak belleğe yüklemek yerine.Font (ad, boyut, kalın, italik, renk), Fill (tür, renk), Alignment (yatay, düşey, satır kaydırma) ve Border (üst/alt/sol/sağ, renk) öğelerini yeniden kullanılabilir bir Style içinde gruplayın, Cell.SetStyle ile uygulanır.Worksheet.AddDataValidation liste ve tam sayı aralığı doğrulama kurallarını ekler, her biri özelleştirilmiş hata başlığı, mesajı ve hata stiline sahiptir.Worksheet.AddTable/GetTable, isteğe bağlı bir başlık satırı ve adlandırılmış bir tablo stiliyle yapılandırılmış bir Table aralığı oluşturur.Worksheet.AddPicture, bir görüntü Pictureı SetAnchor(row, col) konumlandırmasıyla ekler.Aspose.Cells FOSS for Go tek bir go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 komutuyla kurulur. go.mod‘da require girdisi yok — denetlenecek veya vendor yapılacak dış bağımlılık bulunmuyor.
API arayüzü kasıtlı olarak kompakt tasarlanmıştır: Workbook, Worksheet, Cells, Cell, Style ve birkaç yardımcı tip, elektronik tablo oluşturma, stil verme, doğrulama ve CSV/akış I/O’yu kapsar. Kod tabanı MIT lisanslıdır ve GitHub’da barındırılmaktadır.
go get ile kurun, bir Workbook oluşturun, ilk Worksheet‘e erişin ve kaydetmeden önce Cells() koleksiyonu aracılığıyla hücrelere doğrudan değerler yazın.
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)
}
İki farklı sütuna, her biri kendi hata başlığı ve mesajına sahip olacak şekilde, bir liste türü doğrulama (izin verilen değerlerin açılır menüsü) ve bir tam sayı aralığı doğrulaması ekleyin.
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 bir çalışma sayfasını bir satırda bir callback aracılığıyla okur, böylece binlerce satırlı bir çalışma kitabının tamamının belleğe tamamen yüklenmesi gerekmez.
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 MIT Lisansı altında yayınlanmıştır, bu lisans ticari ve açık kaynak kullanımına izin verir.
Evet. MIT Lisansı, özgün telif hakkı bildirimini koruduğu sürece, kendi kaynak kodunuzu açıklama zorunluluğu olmadan ticari kullanımına izin verir.
Bunu go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 ile bir Go modülü bağımlılığı olarak ekleyin. Go 1.24 veya daha yeni bir sürüm gerektirir.
Hayır. go.mod hiçbir require girdisi bildirmez — kütüphane tamamen Go standart kitaplığı üzerine inşa edilmiştir.
Evet. StreamingReader.ProcessRows bir çalışma sayfasını satır satır bir geri çağrı aracılığıyla okur, tam bir bellek içi yüklemeden kaçınır.