Excelize
Elektronik Tablolar için Açık Kaynaklı Go Kitaplığı
Go API aracılığıyla Excel XLSX / XLSM / XLTM Elektronik Tablo Dosyalarında Verileri Okuyun, Oluşturun, Birleştirin ve Filtreleyin.
Excelize, Microsoft Excel XLSX / XLSM / XLTM elektronik tablo dosyalarını okumak ve yazmak için işlevsellik sağlayan bir Açık kaynaklı saf Go kitaplığıdır. Geliştiriciler, Microsoft Excel™ 2007 ve sonrasında oluşturulan elektronik tablo belgelerini kendi uygulamalarının içinde okuyabilir ve yazabilir. Kütüphane çok kullanıcı dostudur ve büyük elektronik tablo dosyalarının okunmasını destekler. Büyük miktarda veri içeren bir çalışma sayfasından veri oluşturmak veya okumak için bir akış API'sı sağlamıştır.
Kitaplık, Excel dosyalarını okuma ve yazma, hücre aralıklarıyla çalışma, Excel satır yönetimi, yorum ekleme, hücreleri birleştirme, satırları kopyalama, koşullu biçimlendirme, metin ekleme, tabloları yönetme gibi Excel elektronik tablo dosyalarının işlenmesi ve işlenmesi ile ilgili birçok önemli özelliği tam olarak destekler. Excel dosyalarında resim ekleyin, yeni sayfalar ekleyin ve çok daha fazlasını yapın.
Excelize'a Başlarken
Excelize'i kurmanın önerilen yolu GitHub'dandır, daha hızlı kurulum için lütfen aşağıdaki komutu kullanın.
GitHub Komutu ile yükleyin
go get github.com/360EntSecGroup-Skylar/excelize
Go Kitaplığı aracılığıyla Excel XLSX Dosyası Oluşturun
Excelize, programcıların kendi Go uygulamalarında bir Excel XLSX elektronik tablosu oluşturmasını sağlar. Sayfayı oluşturduktan sonra ayrıca yeni bir sayfa oluşturabilir, bir hücrenin değerini ayarlayabilir, satır ve sütun sayısını tanımlayabilir, çalışma kitabının etkin bir sayfasını ayarlayabilir ve daha fazlasını yapabilirsiniz. Ayrıca bir sayfaya bir ad atayabilir ve dosyayı seçtiğiniz yola kaydedebilir, oluşturulan bir sayfa için yazı tipi türünü ve metin boyutunu ayarlayabilirsiniz.
Excel LS File via Go API
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
f := excelize.NewFile()
// Create a new sheet.
index := f.NewSheet("Sheet2")
// Set value of a cell.
f.SetCellValue("Sheet2", "A2", "Hello world.")
f.SetCellValue("Sheet1", "B2", 100)
// Set active sheet of the workbook.
f.SetActiveSheet(index)
// Save spreadsheet by the given path.
if err := f.SaveAs("Book1.xlsx"); err != nil {
fmt.Println(err)
}
}
Bir XLSX Dosyasına Grafik Ekleme
Excel Grafikleri, çalışma sayfanızın küçük bir bölümünde büyük miktarda veriyi özetleyerek verilerin daha iyi anlaşılmasını sağlayabilen bir çalışma sayfasındaki verilerin görsel temsilleridir. Grafikler, kullanıcıların verileri Çubuk, Sütun, Pasta, Çizgi, Alan veya Radar vb. gibi farklı biçimlerde görsel olarak görüntülemesine olanak tanır. Excelize kitaplığı, kendi uygulamalarınız içinde yalnızca birkaç satır kodla kontrolün yanı sıra grafik oluşturmayı da destekler. Bir çalışma sayfasındaki verilere dayalı olarak grafikler oluşturmaya veya herhangi bir veri olmadan grafikler oluşturmaya izin verir.
Excel için Grafik ekle File via Go API
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
categories := map[string]string{
"A2": "Small", "A3": "Normal", "A4": "Large",
"B1": "Apple", "C1": "Orange", "D1": "Pear"}
values := map[string]int{
"B2": 2, "C2": 3, "D2": 3, "B3": 5, "C3": 2, "D3": 4, "B4": 6, "C4": 7, "D4": 8}
f := excelize.NewFile()
for k, v := range categories {
f.SetCellValue("Sheet1", k, v)
}
for k, v := range values {
f.SetCellValue("Sheet1", k, v)
}
if err := f.AddChart("Sheet1", "E1", `{
"type": "col3DClustered",
"series": [
{
"name": "Sheet1!$A$2",
"categories": "Sheet1!$B$1:$D$1",
"values": "Sheet1!$B$2:$D$2"
},
{
"name": "Sheet1!$A$3",
"categories": "Sheet1!$B$1:$D$1",
"values": "Sheet1!$B$3:$D$3"
},
{
"name": "Sheet1!$A$4",
"categories": "Sheet1!$B$1:$D$1",
"values": "Sheet1!$B$4:$D$4"
}],
"title":
{
"name": "Fruit 3D Clustered Column Chart"
}
}`); err != nil {
fmt.Println(err)
return
}
// Save spreadsheet by the given path.
if err := f.SaveAs("Book1.xlsx"); err != nil {
fmt.Println(err)
}
}
Excel Dosyasında PivotTable Oluşturma
Excelize, bir Excel elektronik tablosunun içinde kolaylıkla bir pivot tablo oluşturma yeteneği sağlar. Özet tablolar, Microsoft Excel'in en güçlü özelliklerinden biridir. Verilerinizi bir Excel sayfasında hesaplamak, özetlemek ve analiz etmek için güçlü bir araçtır. AddPivotTable işlevini kullanarak basit bir pivot tablo oluşturabilirsiniz. Ayrıca, bir pivot tabloya veri kaynağını kolayca atayabilir veya düzenleyebilirsiniz.
Go Apps içinde Excel File PivotTable
func main() {
f := excelize.NewFile()
// Create some data in a sheet
month := []string{"Jan", "Feb", "Mar", "Apr", "May",
"Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}
year := []int{2017, 2018, 2019}
types := []string{"Meat", "Dairy", "Beverages", "Produce"}
region := []string{"East", "West", "North", "South"}
f.SetSheetRow("Sheet1", "A1", &[]string{"Month", "Year", "Type", "Sales", "Region"})
for row := 2; row < 32; row++ {
f.SetCellValue("Sheet1", fmt.Sprintf("A%d", row), month[rand.Intn(12)])
f.SetCellValue("Sheet1", fmt.Sprintf("B%d", row), year[rand.Intn(3)])
f.SetCellValue("Sheet1", fmt.Sprintf("C%d", row), types[rand.Intn(4)])
f.SetCellValue("Sheet1", fmt.Sprintf("D%d", row), rand.Intn(5000))
f.SetCellValue("Sheet1", fmt.Sprintf("E%d", row), region[rand.Intn(4)])
}
if err := f.AddPivotTable(&excelize.PivotTableOptions{
DataRange: "Sheet1!$A$1:$E$31",
PivotTableRange: "Sheet1!$G$2:$M$34",
Rows: []excelize.PivotTableField{
{Data: "Month", DefaultSubtotal: true}, {Data: "Year"}},
Filter: []excelize.PivotTableField{
{Data: "Region"}},
Columns: []excelize.PivotTableField{
{Data: "Type", DefaultSubtotal: true}},
Data: []excelize.PivotTableField{
{Data: "Sales", Name: "Summarize", Subtotal: "Sum"}},
RowGrandTotals: true,
ColGrandTotals: true,
ShowDrill: true,
ShowRowHeaders: true,
ShowColHeaders: true,
ShowLastColumn: true,
}); err != nil {
fmt.Println(err)
}
if err := f.SaveAs("Book1.xlsx"); err != nil {
fmt.Println(err)
}
}
XLSX E-Tablolarına Resim Ekleyin
Excelize kitaplığı, yalnızca birkaç satırlık Go komutuyla bir Excel XLSX elektronik tablosuna görüntü eklemek için işlevsellik sağlar. Ayrıca görüntüleri ihtiyaçlarınıza göre değiştirebilirsiniz. Ölçeklemeli ve baskı destekli bir resim ekleyebilirsiniz.
Add Image to Excel Worksheet File via Go API
package main
import (
"fmt"
_ "image/gif"
_ "image/jpeg"
_ "image/png"
"github.com/xuri/excelize/v2"
)
func main() {
f, err := excelize.OpenFile("Book1.xlsx")
if err != nil {
fmt.Println(err)
return
}
defer func() {
// Close the spreadsheet.
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// Insert a picture.
if err := f.AddPicture("Sheet1", "A2", "image.png", ""); err != nil {
fmt.Println(err)
}
// Insert a picture to worksheet with scaling.
if err := f.AddPicture("Sheet1", "D2", "image.jpg",
`{"x_scale": 0.5, "y_scale": 0.5}`); err != nil {
fmt.Println(err)
}
// Insert a picture offset in the cell with printing support.
if err := f.AddPicture("Sheet1", "H2", "image.gif", `{
"x_offset": 15,
"y_offset": 10,
"print_obj": true,
"lock_aspect_ratio": false,
"locked": false
}`); err != nil {
fmt.Println(err)
}
// Save the spreadsheet with the origin path.
if err = f.Save(); err != nil {
fmt.Println(err)
}
}