Pengenalan Excelize
Excelize adalah sebuah perpustakaan dasar untuk memanipulasi dokumen Office Excel yang ditulis dalam bahasa Go, berdasarkan pada standar internasional ECMA-376 dan ISO/IEC 29500. Excelize dapat digunakan untuk membaca dan menulis dokumen spreadsheet yang dibuat oleh Microsoft Excel™ 2007 dan versi di atasnya, mendukung berbagai format dokumen seperti XLAM / XLSM / XLSX / XLTM / XLTX. Excelize sangat kompatibel dengan dokumen yang mengandung gaya, gambar (tabel), tabel pivot, pemotong, dan komponen kompleks lainnya, serta menyediakan API baca-tulis yang memungkinkan pengolahan workbook dengan data dalam skala besar secara streaming. Ini dapat diterapkan pada berbagai platform laporan, komputasi cloud, komputasi tepi, dan sistem lainnya. Penggunaan perpustakaan ini memerlukan versi bahasa Go 1.16 atau yang lebih tinggi.
Instalasi
Tabel di bawah ini menunjukkan persyaratan minimum perpustakaan dasar Excelize untuk versi-versi bahasa Go yang berbeda:
Versi Excelize | Persyaratan Minimum untuk Bahasa Go |
---|---|
v2.7.0 | 1.16 |
v2.4.0 ~ v2.6.1 | 1.15 |
v2.0.2 ~ v2.3.2 | 1.10 |
v1.0.0 ~ v2.0.1 | 1.6 |
Penggunaan versi terbaru Excelize memerlukan versi bahasa Go 1.16 atau yang lebih tinggi. Harap dicatat bahwa terdapat perubahan tidak kompatibel pada Go 1.21.0, yang menyebabkan perpustakaan dasar Excelize tidak berfungsi dengan semestinya pada versi ini. Jika Anda menggunakan Go 1.21.x, silakan upgrade ke Go 1.21.1 atau yang lebih tinggi.
- Perintah Instalasi
go get github.com/xuri/excelize
- Jika Anda menggunakan Go Modules untuk mengelola paket, gunakan perintah berikut untuk menginstal versi terbaru.
go get github.com/xuri/excelize/v2
Pembaruan
- Perintah Pembaruan
go get -u github.com/xuri/excelize/v2
Membuat Dokumen Excel
Berikut adalah contoh sederhana pembuatan dokumen Excel:
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
f := excelize.NewFile()
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// Membuat lembar kerja baru
index, err := f.NewSheet("Sheet2")
if err != nil {
fmt.Println(err)
return
}
// Menetapkan nilai sel
f.SetCellValue("Sheet2", "A2", "Halo dunia.")
f.SetCellValue("Sheet1", "B2", 100)
// Menetapkan lembar kerja default dari workbook
f.SetActiveSheet(index)
// Simpan file ke path yang ditentukan
if err := f.SaveAs("Book1.xlsx"); err != nil {
fmt.Println(err)
}
}
Membaca Dokumen Excel
Berikut adalah contoh membaca dokumen Excel:
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
f, err := excelize.OpenFile("Book1.xlsx")
if err != nil {
fmt.Println(err)
return
}
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// Dapatkan nilai sel tertentu dalam lembar kerja
cell, err := f.GetCellValue("Sheet1", "B2")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(cell)
// Dapatkan semua sel di Sheet1
rows, err := f.GetRows("Sheet1")
if err != nil {
fmt.Println(err)
return
}
for _, row := range rows {
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
}
Membuat Grafik dalam Dokumen Excel
Membuat grafik menggunakan Excelize sangatlah sederhana, hanya memerlukan beberapa baris kode. Anda dapat membuat grafik berdasarkan data yang sudah ada di lembar kerja atau menambahkan data ke lembar kerja dan kemudian membuat grafik.
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
f := excelize.NewFile()
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
for idx, row := range [][]interface{}{
{nil, "Apple", "Orange", "Pear"}, {"Small", 2, 3, 3},
{"Normal", 5, 2, 4}, {"Large", 6, 7, 8},
} {
cell, err := excelize.CoordinatesToCellName(1, idx+1)
if err != nil {
fmt.Println(err)
return
}
f.SetSheetRow("Sheet1", cell, &row)
}
if err := f.AddChart("Sheet1", "E1", &excelize.Chart{
Type: excelize.Col3DClustered,
Series: []excelize.ChartSeries{
{
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: []excelize.RichTextRun{
{
Text: "Grafik Kolom 3D Terkelompok Buah",
},
},
}); err != nil {
fmt.Println(err)
return
}
// Simpan file ke lokasi yang ditentukan
if err := f.SaveAs("Buku1.xlsx"); err != nil {
fmt.Println(err)
}
}
Menyisipkan Gambar ke dalam Dokumen Excel
package main
import (
"fmt"
_ "image/gif"
_ "image/jpeg"
_ "image/png"
"github.com/xuri/excelize/v2"
)
func main() {
f, err := excelize.OpenFile("Buku1.xlsx")
if err != nil {
fmt.Println(err)
return
}
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// Menyisipkan gambar
if err := f.AddPicture("Sheet1", "A2", "gambar.png", nil); err != nil {
fmt.Println(err)
return
}
// Menyisipkan gambar ke lembar kerja dan mengatur skala gambar
if err := f.AddPicture("Sheet1", "D2", "gambar.jpg",
&excelize.GraphicOptions{ScaleX: 0.5, ScaleY: 0.5}); err != nil {
fmt.Println(err)
return
}
// Menyisipkan gambar ke lembar kerja dan mengatur properti cetak gambar
enable, disable := true, false
if err := f.AddPicture("Sheet1", "H2", "gambar.gif",
&excelize.GraphicOptions{
PrintObject: &enable,
LockAspectRatio: false,
OffsetX: 15,
OffsetY: 10,
Locked: &disable,
}); err != nil {
fmt.Println(err)
return
}
// Simpan file
if err = f.Save(); err != nil {
fmt.Println(err)
}
}