![](https://products-qa.fileformat.com/ms/spreadsheet/go/excelize/header-image.png)
Excelize
Pustaka Go Sumber Terbuka untuk Hamparan
Baca, Buat, Cantum & Tapis Data dalam Fail Hamparan Excel XLSX / XLSM / XLTM melalui API Go.
Excelize ialah pustaka Go tulen sumber Terbuka yang menyediakan kefungsian untuk membaca dan menulis fail hamparan Microsoft Excel XLSX / XLSM / XLTM. Pembangun boleh membaca dan menulis dokumen hamparan yang dijana oleh Microsoft Excel™ 2007 dan kemudiannya di dalam aplikasi mereka sendiri. Perpustakaan ini sangat mesra pengguna dan menyokong pembacaan fail hamparan yang besar. Ia telah menyediakan API penstriman untuk menjana atau membaca data daripada lembaran kerja dengan jumlah data yang besar.
Perpustakaan menyokong sepenuhnya beberapa ciri penting yang berkaitan dengan manipulasi dan pemprosesan fail hamparan Excel, seperti membaca dan menulis fail Excel, bekerja dengan julat sel, pengurusan baris Excel, menambah ulasan, menggabungkan sel, menyalin baris, pemformatan bersyarat, memasukkan teks, mengurus jadual. dalam fail Excel, tambah imej, tambah helaian baharu dan banyak lagi.
Bermula dengan Excelize
Cara yang disyorkan untuk memasang Excelize adalah daripada GitHub, sila gunakan arahan berikut untuk pemasangan yang lebih pantas.
Pasang melalui Perintah GitHub
go get github.com/360EntSecGroup-Skylar/excelize
Jana Fail Excel XLSX melalui Perpustakaan Go
Excelize membolehkan pengaturcara menjana hamparan Excel XLSX dalam aplikasi Go mereka sendiri. Sebaik sahaja anda telah mencipta helaian, anda juga boleh mencipta helaian baharu, tetapkan nilai sel, tentukan bilangan baris dan lajur, Tetapkan helaian aktif buku kerja dan banyak lagi. Anda juga boleh menetapkan nama pada helaian dan menyimpan fail ke laluan pilihan anda, tetapkan jenis fon dan saiz teks untuk helaian yang dibuat.
Cipta Fail Excel XLSX melalui 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)
}
}
Sisipkan Carta ke Fail XLSX
Carta Excel ialah perwakilan visual data daripada lembaran kerja yang boleh menyampaikan lebih pemahaman tentang data dengan meringkaskan sejumlah besar data dalam bahagian kecil lembaran kerja anda. Carta membolehkan pengguna memaparkan data secara visual dalam format yang berbeza seperti Bar, Lajur, Pai, Garisan, Kawasan atau Radar, dll. Pustaka Excelize menyokong penjanaan carta serta kawalan dengan hanya beberapa baris kod dalam aplikasi anda sendiri. Ia membenarkan membina carta berdasarkan data dalam lembaran kerja atau menjana carta tanpa sebarang data.
Tambahkan Carta pada Fail Hamparan Excel melalui 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)
}
}
Mencipta Jadual Pangsi dalam Fail Excel
Excelize menyediakan keupayaan untuk mencipta jadual pangsi di dalam hamparan Excel dengan mudah. Jadual pangsi ialah salah satu ciri Microsoft Excel yang paling berkuasa. Ia adalah alat yang berkuasa untuk mengira, meringkaskan dan menganalisis data anda dalam helaian Excel. Anda boleh mencipta jadual pangsi mudah dengan menggunakan fungsi AddPivotTable. Selain itu, anda boleh menetapkan atau mengedit sumber data dengan mudah ke jadual pangsi.
Hasilkan Jadual Pangsi dalam Fail Excel di dalam Go Apps
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)
}
}
Tambahkan Imej pada Hamparan XLSX
Pustaka Excelize menyediakan fungsi untuk menambahkan imej pada hamparan Excel XLSX dengan hanya beberapa baris arahan Go. Anda juga boleh mengubah suai imej mengikut keperluan anda. Anda boleh memasukkan gambar dengan penskalaan serta dengan sokongan pencetakan.
Tambahkan Imej pada Fail Lembaran Kerja Excel melalui 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)
}
}