![](https://products-qa.fileformat.com/ar/spreadsheet/go/excelize/header-image.png)
Excelize
افتح مكتبة Go Source لجداول البيانات
قراءة وإنشاء ودمج وتصفية البيانات في ملفات جداول بيانات Excel XLSX / XLSM / XLTM عبر Go API.
Excelize هي مكتبة Go مفتوحة المصدر توفر وظائف لقراءة وكتابة ملفات جداول بيانات Microsoft Excel XLSX / XLSM / XLTM. يمكن للمطورين قراءة وكتابة مستندات جداول البيانات التي تم إنشاؤها بواسطة Microsoft Excel ™ 2007 وما بعده داخل تطبيقاتهم الخاصة. المكتبة سهلة الاستخدام للغاية وتدعم قراءة ملفات جداول البيانات الكبيرة. لقد وفرت واجهة برمجة تطبيقات متدفقة لتوليد أو قراءة البيانات من ورقة عمل تحتوي على كميات هائلة من البيانات.
تدعم المكتبة بشكل كامل العديد من الميزات المهمة المتعلقة بمعالجة ملفات جداول بيانات Excel ومعالجتها ، مثل قراءة ملفات Excel وكتابتها ، والعمل مع نطاقات الخلايا ، وإدارة صفوف Excel ، وإضافة التعليقات ، ودمج الخلايا ، ونسخ الصفوف ، والتنسيق الشرطي ، وإدراج النصوص ، وإدارة الجداول في ملفات Excel ، أضف الصور وأضف أوراقًا جديدة وغير ذلك الكثير.
الشروع في العمل مع Excelize
الطريقة الموصى بها لتثبيت Excelize هي من GitHub ، يرجى استخدام الأمر التالي للتثبيت بشكل أسرع.
التثبيت عبر GitHub Command
go get github.com/360EntSecGroup-Skylar/excelize
قم بإنشاء ملف Excel XLSX عبر Go Library
يتيح Excelize للمبرمجين إنشاء جدول بيانات Excel XLSX داخل تطبيقات Go الخاصة بهم. بمجرد إنشاء الورقة ، يمكنك أيضًا إنشاء ورقة جديدة ، وتعيين قيمة الخلية ، وتحديد عدد الصفوف والأعمدة ، وتعيين ورقة نشطة من المصنف ، والمزيد. يمكنك أيضًا تعيين اسم للورقة وحفظ الملف في المسار الذي تختاره ، وتعيين نوع الخط وحجم النص للورقة التي تم إنشاؤها.
قم بإنشاء ملف Excel XLSX عبر 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)
}
}
قم بإدراج مخطط في ملف XLSX
مخططات Excel هي تمثيلات مرئية للبيانات من ورقة عمل يمكنها نقل المزيد من فهم البيانات من خلال تلخيص كميات كبيرة من البيانات في قسم صغير من ورقة العمل الخاصة بك. تسمح المخططات للمستخدمين بعرض البيانات بصريًا بتنسيقات مختلفة مثل الشريط أو العمود أو الدائرة أو الخط أو المنطقة أو الرادار ، إلخ. تدعم مكتبة Excelize إنشاء المخططات بالإضافة إلى التحكم ببضعة سطور من التعليمات البرمجية داخل تطبيقاتك الخاصة. يسمح ببناء المخططات بناءً على البيانات الموجودة في ورقة العمل أو إنشاء المخططات بدون أي بيانات.
أضف مخططًا إلى ملف جدول بيانات Excel عبر 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)
}
}
إنشاء PivotTable في ملف Excel
يوفر Excelize القدرة على إنشاء جدول محوري داخل جدول بيانات Excel بسهولة. تعد الجداول المحورية إحدى أقوى ميزات Microsoft Excel. إنها أداة قوية لحساب وتلخيص وتحليل بياناتك في ورقة Excel. يمكنك إنشاء جدول محوري بسيط باستخدام الوظيفة AddPivotTable. علاوة على ذلك ، يمكنك بسهولة تعيين مصدر البيانات أو تحريره إلى جدول محوري.
قم بإنشاء PivotTable في ملف Excel داخل 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)
}
}
أضف الصور إلى جداول بيانات XLSX
توفر مكتبة Excelize وظائف لإضافة الصور إلى جدول بيانات Excel XLSX مع سطرين فقط من أوامر Go. يمكنك أيضًا تعديل الصور وفقًا لاحتياجاتك. يمكنك إدراج صورة مع التحجيم وكذلك مع دعم الطباعة.
أضف صورة إلى ملف ورقة عمل Excel عبر 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)
}
}