مصنف

الخيارات تحدد الخيارات لقراءة وكتابة جداول البيانات.

type Options struct {
    MaxCalcIterations uint
    Password          string
    RawCellValue      bool
    UnzipSizeLimit    int64
    UnzipXMLSizeLimit int64
    ShortDatePattern  string
    LongDatePattern   string
    LongTimePattern   string
    CultureInfo       CultureName
}

MaxCalcIterations يُستخدم لتحديد الحد الأقصى لعدد الدورات عند حساب الصيغ، مع قيمة افتراضية تساوي 0.

Password يُستخدم لتحديد كلمة المرور لفتح وحفظ المصنف في النص العادي، مع قيمة افتراضية فارغة.

RawCellValue يُستخدم لتحديد ما إذا كان سيتم استرجاع القيمة الخام عند قراءة قيم الخلية، مع قيمة افتراضية تساوي false (تطبيق تنسيق الأرقام).

UnzipSizeLimit يُستخدم لتحديد الحد الأقصى لحجم الفك عند فتح مستند جدول بيانات، ويجب أن يكون أكبر من أو يساوي UnzipXMLSizeLimit، مع حد أقصى افتراضي يساوي 16 جيجابايت.

UnzipXMLSizeLimit يُستخدم لتحديد الحد الأقصى للذاكرة عند فك ضغط كل ورقة عمل وجدول السلاسل المشتركة، وعند تجاوز الحجم لهذه القيمة، سيتم فك ضغط ملف XML الورقة إلى دليل النظام المؤقت. يجب أن يكون هذا الحد أقل من أو يساوي UnzipSizeLimit، مع حد أقصى افتراضي يساوي 16 ميجابايت.

ShortDatePattern يُستخدم لتحديد رمز تنسيق التاريخ العددي القصير.

LongDatePattern يُستخدم لتحديد رمز تنسيق التاريخ العددي الطويل.

LongTimePattern يُستخدم لتحديد رمز تنسيق الوقت العددي الطويل.

CultureInfo يُستخدم لتحديد التنسيق الإقليمي، الذي سيتم استخدامه عند قراءة التنسيقات الرقمية التي تتأثر بإعدادات التاريخ والوقت الخاصة بالمنطقة.

الإنشاء

func NewFile(opts ...Options) *File

استخدم NewFile لإنشاء مصنف إكسل جديد، الذي سيحتوي افتراضيًا على ورقة عمل تسمى Sheet1.

فتح

func OpenFile(filename string, opts ...Options) (*File, error)

استخدم OpenFile لفتح مستند إكسل موجود. على سبيل المثال، فتح مستند جدول بيانات محمي بكلمة مرور:

f, err := excelize.OpenFile("Book1.xlsx", excelize.Options{Password: "password"})
if err != nil {
    return
}

استخدم Close() لإغلاق المصنف المفتوح.

فتح مجرى البيانات

func OpenReader(r io.Reader, opts ...Options) (*File, error)

OpenReader يقوم بقراءة البيانات من io.Reader.

في المثال التالي، سنقوم بإنشاء خادم HTTP بسيط لاستقبال مستندات جدول بيانات مرفوعة، إضافة ورقة عمل جديدة إلى المستند الذي تم استقباله، وإرجاع استجابة التنزيل:

package main

import (
    "fmt"
    "net/http"

    "github.com/xuri/excelize/v2"
)

func process(w http.ResponseWriter, req *http.Request) {
    file, _, err := req.FormFile("file")
    if err != nil {
        fmt.Fprint(w, err.Error())
        return
    }
    defer file.Close()
    f, err := excelize.OpenReader(file)
    if err != nil {
        fmt.Fprint(w, err.Error())
        return
    }
    f.Path = "Book1.xlsx"
    f.NewSheet("NewSheet")
    w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=%s", f.Path))
    w.Header().Set("Content-Type", req.Header.Get("Content-Type"))
    if err := f.Write(w); err != nil {
        fmt.Fprint(w, err.Error())
    }
}

func main() {
    http.HandleFunc("/process", process)
    http.ListenAndServe(":8090", nil)
}

اختبار باستخدام cURL:

curl --location --request GET 'http://127.0.0.1:8090/process' \
--form 'file=@/tmp/template.xltx' -O -J

حفظ

func (f *File) Save(opts ...Options) error

استخدم Save لحفظ التعديلات على مستند إكسل.

حفظ كملف جديد

func (f *File) SaveAs(name string, opts ...Options) error

استخدم SaveAs لحفظ مستند إكسل باسم معين.

إغلاق المصنف

func (f *File) Close() error

أغلق المصنف وقم بتنظيف أي ذاكرة تخزين مؤقتة للنظام قد تم إنشاؤها عند فتح المستند.

ورقة عمل جديدة

func (f *File) NewSheet(sheet string) (int, error)

يقوم بإنشاء ورقة عمل جديدة باستخدام اسم ورقة العمل المعطى وإعادة فهرس الورقة في الدفتر. يرجى ملاحظة أنه عند إنشاء دفتر عمل جديد، سيحتوي على ورقة عمل افتراضية تحمل اسم Sheet1.

حذف ورقة العمل

func (f *File) DeleteSheet(sheet string) error

يقوم بحذف ورقة العمل المحددة باستخدام اسم ورقة العمل المعطى. يُستخدم هذا الأسلوب بحذر، حيث إنه سيؤثر على الصيغ والمراجع والرسوم البيانية والعناصر الأخرى المرتبطة بورقة العمل المحذوفة. إذا كانت العناصر الأخرى تشير لقيم في ورقة العمل المحذوفة، فسيتم تنبيه بخطأ، وقد يؤدي حتى إلى فشل فتح الدفتر. استدعاء هذا الأسلوب غير صالح عندما يحتوي الدفتر على ورقة عمل واحدة فقط.

نسخ ورقة العمل

func (f *File) CopySheet(from, to int) error

يقوم بنسخ ورقة العمل استنادًا إلى ورقة العمل المصدر المعطاة وفهرس الورقة العمل الهدف. يجب على المطور التأكد مما إذا كان فهرس الورقة العمل الهدف موجودًا بالفعل. حاليًا، يتم دعم نسخ الأوراق العمل التي تحتوي على قيم الخلايا والصيغ، بينما لا يتم دعم نسخ الأوراق العمل التي تحتوي على جداول وصور ورسوم بيانية وجداول محورية.

// الورقة التي تحمل اسم Sheet1 موجودة بالفعل ...
index, err := f.NewSheet("Sheet2")
if err != nil {
    fmt.Println(err)
    return
}
err := f.CopySheet(1, index)

تجميع الأوراق العمل

func (f *File) GroupSheets(sheets []string) error

يقوم بتجميع الأوراق العمل استنادًا إلى أسماء الأوراق العمل المعطاة، ويجب تضمين الورقة الافتراضية في الأوراق المعطاة.

فصل الأوراق العمل المجمعة

func (f *File) UngroupSheets() error

يقوم بفصل الأوراق العمل المجمعة.

تعيين صورة خلفية لورقة العمل

func (f *File) SetSheetBackground(sheet, picture string) error

يقوم بتعيين صورة خلفية مكررة لورقة العمل المحددة استنادًا إلى اسم ورقة العمل ومسار ملف الصورة المعطى. صيغ ملفات الصور المدعومة تشمل: BMP وEMF وEMZ وGIF وJPEG وJPG وPNG وSVG وTIF وTIFF وWMF وWMZ.

func (f *File) SetSheetBackgroundFromBytes(sheet, extension string, picture []byte) error

يقوم بتعيين صورة خلفية مكررة لورقة العمل المحددة استنادًا إلى اسم ورقة العمل وامتداد صيغة الصورة وبيانات صيغة الصورة المعطاة. صيغ ملفات الصور المدعومة تشمل: BMP وEMF وEMZ وGIF وJPEG وJPG وPNG وSVG وTIF وTIFF وWMF وWMZ.

تعيين ورقة العمل الافتراضية

func (f *File) SetActiveSheet(index int)

يقوم بتعيين ورقة العمل الافتراضية استنادًا إلى قيمة الفهرس المعطاة، حيث يجب أن تكون القيمة أكبر من أو تساوي 0 وأقل من الإجمالي التراكمي لعدد الأوراق العمل في الدفتر.

الحصول على مؤشر ورقة العمل الافتراضية

func (f *File) GetActiveSheetIndex() int

يقوم بالحصول على فهرس الورقة العمل الافتراضية، مع إعادة 0 إذا لم يتم العثور على ورقة عمل افتراضية.

تعيين رؤية ورقة العمل

func (f *File) SetSheetVisible(sheet string, visible bool, veryHidden ...bool) error

يقوم بتعيين رؤية ورقة العمل استنادًا إلى اسم ورقة العمل ومعلم الرؤية. يجب أن يحتوي الدفتر على ورقة عمل واحدة على الأقل. إذا كانت ورقة العمل المعطاة هي الورقة الافتراضية، فإن إعداد الرؤية غير صالح. المعلم اختياري ويكون صالحًا فقط عندما تكون قيمة المعلم veryHidden تساوي false.

على سبيل المثال، لإخفاء ورقة العمل التي تحمل اسم Sheet1:

err := f.SetSheetVisible("Sheet1", false)

الحصول على رؤية ورقة العمل

func (f *File) GetSheetVisible(sheet string) (bool, error)

يقوم بالحصول على إعدادات الرؤية لورقة العمل استنادًا إلى اسم ورقة العمل المعطى. على سبيل المثال، لاسترداد إعدادات الرؤية لورقة العمل التي تحمل اسم Sheet1:

visible, err := f.GetSheetVisible("Sheet1")

تعيين خصائص الورقة

func (f *File) SetSheetProps(sheet string, opts *SheetPropsOptions) error

تعيين خصائص ورقة العمل المحددة استنادًا إلى اسم ورقة العمل المعطى وخيارات الخصائص. يتم دعم خيارات خصائص ورقة العمل المدعومة على النحو التالي:

الخاصية النوع الوصف
CodeName *string اسم الكود
EnableFormatConditionsCalculation *bool حدد ما إذا كانت التنسيق الشرطي يتم حسابه تلقائيًا، بقيمة افتراضية صحيحة
Published *bool حدد ما إذا كانت ورقة العمل منشورة، بقيمة افتراضية صحيحة
AutoPageBreaks *bool حدد ما إذا كانت ورقة العمل تقوم بكسر الصفحات تلقائيًا، بقيمة افتراضية صحيحة
FitToPage *bool حدد ما إذا كان تمكين الطباعة الملائمة للصفحة، بقيمة افتراضية خاطئة
TabColorIndexed *int يُستخدم للقيمة المؤشرة الملونة المتوافقة للخلفية
TabColorRGB *string قيمة اللون القياسية ARGB
TabColorTheme *int مؤشر لون السمة بدءًا من 0
TabColorTint *float64 قيمة الظل المطبقة على اللون، بقيمة افتراضية 0.0
OutlineSummaryBelow *bool حدد اتجاه الملخص، سواءً أسفل البيانات التفصيلية، بقيمة افتراضية صحيحة
OutlineSummaryRight *bool حدد اتجاه الملخص، سواءً لليمين من البيانات التفصيلية، بقيمة افتراضية صحيحة
BaseColWidth *uint8 عرض العمود الأساسي الممثل في عدد الأحرف، بقيمة افتراضية 8
DefaultColWidth *float64 عرض العمود الافتراضي بما في ذلك الهوامش وخطوط الشبكة
DefaultRowHeight *float64 ارتفاع الصف الممثل بالنقاط
CustomHeight *bool حدد ما إذا كان يتم تطبيق ارتفاع الصف المخصص، بقيمة افتراضية خاطئة
ZeroHeight *bool حدد ما إذا كانت الصفوف مخفية بشكل افتراضي، بقيمة افتراضية خاطئة
ThickTop *bool حدد ما إذا كانت الصفوف تحتوي على حد أعلى سميك افتراضيًا، بقيمة افتراضية خاطئة
ThickBottom *bool حدد ما إذا كانت الصفوف تحتوي على حد أسفل سميك افتراضيًا، بقيمة افتراضية خاطئة

على سبيل المثال، لتعيين إخفاء الصف الافتراضي في ورقة العمل المسماة Sheet1:

تعيين خصائص الورقة

f, enable := excelize.NewFile(), true
if err := f.SetSheetProps("Sheet1", &excelize.SheetPropsOptions{
    ZeroHeight: &enable,
}); err != nil {
    fmt.Println(err)
}
if err := f.SetRowVisible("Sheet1", 10, true); err != nil {
    fmt.Println(err)
}
f.SaveAs("Book1.xlsx")

الحصول على خصائص الورقة

func (f *File) GetSheetProps(sheet string) (SheetPropsOptions, error)

الحصول على خصائص ورقة العمل المحددة استنادًا إلى اسم ورقة العمل المعطى.

تعيين خصائص عرض الورقة

func (f *File) SetSheetView(sheet string, viewIndex int, opts *ViewOptions) error

يتم تعيين خصائص عرض الورقة استنادًا إلى اسم الورقة المعطى، وفهرس العرض، وخيارات العرض. يمكن أن يكون viewIndex عددًا سالبًا، وفي هذه الحالة سيتم عمل عداد للخلف ( -1 يمثل العرض الأخير). الخيارات المدعومة لتعيين خصائص عرض الورقة هي كما يلي:

الخاصية النوع الوصف
DefaultGridColor *bool يحدد ما إذا كان سيتم استخدام لون الخطوط الشبكية الافتراضي، القيمة الافتراضية هي true
RightToLeft *bool يحدد ما إذا كان يتم عرض الورقة من اليمين إلى اليسار، القيمة الافتراضية هي false
ShowFormulas *bool يحدد ما إذا كانت ورقة العمل تعرض الصيغ، القيمة الافتراضية هي false
ShowGridLines *bool يحدد ما إذا كانت ورقة العمل تعرض خطوط الشبكة، القيمة الافتراضية هي true
ShowRowColHeaders *bool يحدد ما إذا كانت ورقة العمل تعرض رؤوس الصفوف والأعمدة، القيمة الافتراضية هي true
ShowRuler *bool يحدد ما إذا كان يتم عرض المسطرة في عرض تخطيط الصفحة، القيمة الافتراضية هي true
ShowZeros *bool يحدد ما إذا كان يتم عرض القيم الصفرية في الخلايا، القيمة الافتراضية هي true، وإلا سيتم عرضها كخانة فارغة
TopLeftCell *string يحدد إحداثي الخلية العلوية اليسرى المرئية
View *string يشير إلى نوع عرض ورقة العمل، مع قيم متعددة مثل normal، pageBreakPreview، و pageLayout
ZoomScale *float64 نسبة تكبير نافذة عرض الحالي، تقتصر إلى نطاق من 10 إلى 400، القيمة الافتراضية هي 100

الحصول على خصائص عرض الورقة

func (f *File) GetSheetView(sheet string, viewIndex int) (ViewOptions, error)

استرداد خصائص عرض الورقة استنادًا إلى اسم الورقة المعطى وفهرس العرض. يمكن أن يكون viewIndex عددًا سالبًا، وفي هذه الحالة سيتم عمل عداد للخلف ( -1 يمثل العرض الأخير).

تعيين تخطيط صفحة الورقة للصفحة

func (f *File) SetPageLayout(sheet string, opts *PageLayoutOptions) error

قم بتعيين سمات تخطيط الصفحة لورقة العمل استنادًا إلى اسم ورقة العمل المعطاة ومعلمات تخطيط الصفحة. تشمل السمات التي يتم دعمها حاليًا لتخطيط الصفحة:

يُستخدم السمة "الحجم" لتحديد حجم ورقة الصفحة، ويكون الحجم الافتراضي لتخطيط الصفحة "حجم الليتر 8½ × 11 بوصة". توضح الجدول التالي العلاقة بين أحجام تخطيط الصفحة ومعامل الفهرس "الحجم" في Excelize:

الفهرس حجم الورق
1 حجم الليتر 8½ × 11 بوصة
2 ليتر صغير 8½ × 11 بوصة
3 تابلويد 11 × 17 بوصة
4 دفتر الأستاذ 17 × 11 بوصة
... ...
40 المطوي الألماني القياسي 8.5 × 12 بوصة
41 ورق قانوني ألماني مطوي 8.5 × 13 بوصة
42 ISO B4 250 × 353 ملم
43 بطاقة بريدية يابانية 100 × 148 ملم
44 ورقة قياسية 9 × 11 بوصة
45 ورقة قياسية 10 × 11 بوصة
46 ورقة قياسية 15 × 11 بوصة
47 رسالة دعوة 220 × 220 ملم
50 رأس الرسالة الموسعة 9.275 × 12 بوصة
51 ورق قانوني كبير إضافي 9.275 × 15 بوصة
52 ورق إضافي تابلويد 11.69 × 18 بوصة
53 A4 كبير إضافي 236 × 322 ملم
54 رأس الرسالة أفقي 8.275 × 11 بوصة
55 A4 أفقي 210 × 297 ملم
56 رأس الرسالة كبير إضافي أفقي 9.275 × 12 بوصة
57 ورقة سوبر A/SuperA/A4 227 × 356 ملم
58 ورقة سوبر B/SuperB/A3 305 × 487 ملم
59 رأس الرسالة الموسعة 8.5 × 12.69 بوصة
60 A4 الموسعة 210 × 330 ملم
61 A5 أفقي 148 × 210 ملم
62 JIS B5 أفقي 182 × 257 ملم
63 A3 كبير إضافي 322 × 445 ملم
64 A5 كبير إضافي 174 × 235 ملم
65 ISO B5 كبير إضافي 201 × 276 ملم
66 A2 420 × 594 ملم
67 A3 أفقي 297 × 420 ملم
68 A3 كبير إضافي أفقي 322 × 445 ملم
69 بطاقة بريدية يابانية مزدوجة 200 × 148 ملم
70 A6 105 × 148 ملم
71 مظروف ياباني كاكو #2
72 مظروف ياباني كاكو #3
73 مظروف ياباني شو #3
74 مظروف ياباني شو #4
75 رأس الرسالة أفقي 11 × 8½ بوصة
76 A3 أفقي 420 × 297 ملم
77 A4 أفقي 297 × 210 ملم
78 A5 أفقي 210 × 148 ملم
79 B4 (JIS) أفقي 364 × 257 ملم
80 B5 (JIS) أفقي 257 × 182 ملم
81 بطاقة بريدية يابانية أفقية 148 × 100 ملم
82 بطاقة بريدية يابانية مزدوجة أفقية 148 × 200 ملم
83 A6 أفقي 148 × 105 ملم
84 مظروف ياباني كاكو #2 أفقي
85 مظروف ياباني كاكو #3 أفقي
86 مظروف ياباني شو #3 أفقي
| 87 | Japanese Envelope Chou #4 Landscape |
| 88 | B6 (JIS) 128 × 182 مم |
| 89 | B6 (JIS) Landscape 182 × 128 مم |
| 90 | 12 × 11 بوصة |
| 91 | Japanese Envelope You #4 |
| 92 | Japanese Envelope You #4 Landscape |
| 93 | Chinese 16K 146 × 215 مم |
| 94 | Chinese 32K 97 × 151 مم |
| 95 | Chinese Large 32K 97 × 151 مم |
| 96 | Chinese Envelope #1 102 × 165 مم |
| 97 | Chinese Envelope #2 102 × 176 مم |
| 98 | Chinese Envelope #3 125 × 176 مم |
| 99 | Chinese Envelope #4 110 × 208 مم |
| 100 | Chinese Envelope #5 110 × 220 مم |
| 101 | Chinese Envelope #6 120 × 230 مم |
| 102 | Chinese Envelope #7 160 × 230 مم |
| 103 | Chinese Envelope #8 120 × 309 مم |
| 104 | Chinese Envelope #9 229 × 324 مم |
| 105 | Chinese Envelope #10 324 × 458 مم |
| 106 | Chinese 16K Landscape |
| 107 | Chinese 32K Landscape |
| 108 | Chinese Large 32K Landscape |
| 109 | Chinese Envelope #1 Landscape 165 × 102 مم |
| 110 | Chinese Envelope #2 Landscape 176 × 102 مم |
| 111 | Chinese Envelope #3 Landscape 176 × 125 مم |
| 112 | Chinese Envelope #4 Landscape 208 × 110 مم |
| 113 | Chinese Envelope #5 Landscape 220 × 110 مم |
| 114 | Chinese Envelope #6 Landscape 230 × 120 مم |
| 115 | Chinese Envelope #7 Landscape 230 × 160 مم |
| 116 | Chinese Envelope #8 Landscape 309 × 120 مم |
| 117 | Chinese Envelope #9 Landscape 324 × 229 مم |
| 118 | Chinese Envelope #10 Landscape 458 × 324 مم |

يتم استخدام خاصية `التوجيه` لتحديد اتجاه تخطيط الصفحة، مع اتجاه التخطيط الافتراضي يكون "عمودي"، والقيم الاختيارية هي `عمودي` و `أفقي`.

تُستخدم خاصية `FirstPageNumber` لتحديد رقم الصفحة البدء، حيث القيمة الافتراضية هي التلقائي.

يُستخدم الخاصية `AdjustTo` لتحديد نسبة تحجيم الصفحة، مع نطاق من 10 إلى 400، أي تحجيم من 10٪ إلى 400٪، والقيمة الافتراضية `100` للحجم العادي. ضبط `FitToHeight` أو `FitToWidth` سيتم التغلب على هذه الخاصية.

تُستخدم الخاصية `FitToHeight` لتحديد تحجيم الصفحة لضبط عرض الصفحة، بقيمة افتراضية `1`.

تُستخدم الخاصية `FitToWidth` لتحديد تحجيم الصفحة لضبط ارتفاع الصفحة، بقيمة افتراضية `1`.

تُستخدم خاصية `BlackAndWhite` لتحديد الطباعة ثنائية اللون، حيث القيمة الافتراضية هي إيقافها.
f := excelize.NewFile()
var (
    size                 = 10
    orientation          = "landscape"
    firstPageNumber uint = 2
    adjustTo        uint = 100
    fitToHeight          = 2
    fitToWidth           = 2
    blackAndWhite        = true
)
if err := f.SetPageLayout("Sheet1", &excelize.PageLayoutOptions{
    Size:            &size,
    Orientation:     &orientation,
    FirstPageNumber: &firstPageNumber,
    AdjustTo:        &adjustTo,
    FitToHeight:     &fitToHeight,
    FitToWidth:      &fitToWidth,
    BlackAndWhite:   &blackAndWhite,
}); err != nil {
    fmt.Println(err)
}

الحصول على تصميم الصفحة لورقة العمل

func (f *File) GetPageLayout(sheet string) (PageLayoutOptions, error)

الحصول على خصائص تصميم الصفحة لورقة العمل استنادًا إلى اسم الورقة المعطاة ومعلمات تصميم الصفحة المعطاة.

تعيين هوامش صفحة الورقة

func (f *File) SetPageMargins(sheet string, opts *PageLayoutMarginsOptions) error

تعيين هوامش الصفحة لورقة العمل استنادًا إلى اسم الورقة المعطى ومعلمات الهامش. الخيارات المدعومة للهامش هي:

الخيار النوع الوصف
الأسفل *float64 الهامش السفلي
تذييل الصفحة *float64 الهامش السفلي
رأس الصفحة *float64 الهامش العلوي
يسار *float64 الهامش الأيسر
يمين *float64 الهامش الأيمن
أعلى *float64 الهامش العلوي
أفقيا *bool توسيط الصفحة أفقيًا
رأسيًا *bool توسيط الصفحة رأسيًا

الحصول على هوامش صفحة الورقة

func (f *File) GetPageMargins(sheet string) (PageLayoutMarginsOptions, error)

الحصول على الهوامش لورقة العمل استنادًا إلى اسم الورقة المعطى ومعلمات الهامش.

تعيين خصائص دفتر العمل

func (f *File) SetWorkbookProps(opts *WorkbookPropsOptions) error

يتم استخدام SetWorkbookProps لتعيين خصائص دفتر العمل. الخصائص المدعومة لدفتر العمل هي:

الخاصية النوع الوصف
Date1904 *bool يشير ما إذا كان دفتر العمل يستخدم نظام التاريخ 1904
FilterPrivacy *bool خصوصية الفلترة، تشير ما إذا كان التطبيق يتحقق من المعلومات الشخصية في دفتر العمل
CodeName *string الاسم التعريفي

الحصول على خصائص دفتر العمل

func (f *File) GetWorkbookProps() (WorkbookPropsOptions, error)

يتم استخدام GetWorkbookProps للحصول على خصائص دفتر العمل.

تعيين رأس وتذييل

func (f *File) SetHeaderFooter(sheet string, opts *HeaderFooterOptions) error

يُعين رأس وتذييل ورقة العمل استنادًا إلى اسم ورقة العمل المعطى والأحرف التحكمية المُعطاة.

يتضمن الرأس والتذييل الحقول التالية:

الحقل الوصف
AlignWithMargins تعيين توجيه الرأس والتذييل مع هوامش الصفحة
DifferentFirst تعيين الرأس والتذييل للصفحة الأولى
DifferentOddEven تعيين الرأس والتذييل للصفحات الفردية والزوجية
ScaleWithDoc تعيين توسيع الرأس والتذييل مع المستند
OddFooter الحرف التحكمي للتذييل في الصفحات الفردية، يستخدم لتعيين التذييل للصفحة الأولى عندما تكون قيمة DifferentOddEven false
OddHeader الحرف التحكمي للرأس في الصفحات الفردية، يستخدم لتعيين الرأس للصفحة الأولى عندما تكون قيمة DifferentOddEven false
EvenFooter الحرف التحكمي للتذييل في الصفحات الزوجية
EvenHeader الحرف التحكمي للرأس في الصفحات الزوجية
FirstFooter الحرف التحكمي لتذييل الصفحة الأولى
FirstHeader الحرف التحكمي لرأس الصفحة الأولى

يمكن استخدام رموز التنسيق في الجدول أدناه للحقول من نوع السلسلة مثل OddHeader، OddFooter، EvenHeader، EvenFooter، FirstFooter، FirstHeader

رمز التنسيق الوصف
&& الحرف "&"
&font-size حجم النص، حيث يكون حجم الخط عبارة عن حجم خط عشري بالنقاط
&"اسم الخط،نوع الخط" سلسلة اسم الخط وسلسلة نوع الخط
&"-,Regular" تنسيق نص عتيق. إيقاف الأوضاع عريض ومائل
&A اسم ورقة العمل الحالية
&B أو &"-,Bold" تنسيق نص عريض، منشط أو معطل، بشكل افتراضي معطل
&D التاريخ الحالي
&C القسم المركزي
&E خط أسفل مزدوج للنص
&F اسم ملف العمل الحالي
&G تحديد الكائن كخلفية (غير مدعوم حاليًا)
&H ظل النص
&I أو &"-,Italic" نص مائل
&K تنسيق لون الخط بتنسيق لون RGB في صيغة RRGGBB. يتم تحديد الألوان الحديثة بتسميات TTSNNN، حيث TT هو معرف اللون الحديث، S هو الدرجة أو الظل من "+ -"، هو قيمة الدرجة أو الظل
&L القسم الأيسر
&N إجمالي عدد الصفحات
&O تنسيق نص مخطط
&P[[+\|-]n] إذا لم يكن هناك لاحقة اختيارية، فإنه يعرض رقم الصفحة الحالية (عشري)
&R القسم الأيمن
&S خط النص
&T الوقت الحالي
&U إضافة خط أسفل واحد إلى النص. الوضع الافتراضي معطل
&X تنسيق نص فوقي
&Y تنسيق نص تحتي
&Z مسار ملف العمل الحالي

على سبيل المثال:

err := f.SetHeaderFooter("Sheet1", &excelize.HeaderFooterOptions{
    DifferentFirst:   true,
    DifferentOddEven: true,
    OddHeader:        "&R&P",
    OddFooter:        "&C&F",
    EvenHeader:       "&L&P",
    EvenFooter:       "&L&D&R&T",
    FirstHeader:      `&CCenter &"-,Bold"Bold&"-,Regular"HeaderU+000A&D`,
})

يحتوي المثال أعلاه على التنسيق التالي:

  • تحتوي الصفحة الأولى على رأس وتذييل خاص بها
  • الصفحات الفردية والزوجية تحتوي على رؤوس وأذيال مختلفة
  • الجزء الأيمن من رأس الصفحة الفردية هو رقم الصفحة الحالي
  • الجزء المركزي من تذييل الصفحة الفردية هو اسم ملف العمل الحالي
  • الجزء الأيسر هو رقم الصفحة الحالي في رأس الصفحة الزوجية
  • الجزء الأيسر هو التاريخ الحالي، والجزء الأيمن من تذييل الصفحة الزوجية هو الوقت الحالي
  • النص في الصف الأول في الجزء المركزي للصفحة الأولى هو "رأس عريض مركزي"، والصف الثاني هو التاريخ
  • لا يوجد تذييل على الصفحة الأولى

تعيين الاسم

func (f *File) SetDefinedName(definedName *DefinedName) error

قم بتعيين الاسم ونطاق الإشارة استنادًا إلى الاسم المعطى، مع نطاق الافتراضي يكون دفتر العمل. على سبيل المثال:

err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "المبلغ",
    RefersTo: "الورقة1!$A$2:$D$5",
    Comment:  "تعليق الاسم المعرف",
    Scope:    "الورقة2",
})

قم بتعيين منطقة الطباعة وعناوين الطباعة لورقة العمل:

ضبط منطقة الطباعة وعناوين الطباعة لورقة العمل

if err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "_xlnm.Print_Area",
    RefersTo: "الورقة1!$A$1:$Z$100",
    Scope:    "الورقة1",
}); err != nil {
    fmt.Println(err)
}
if err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "_xlnm.Print_Titles",
    RefersTo: "الورقة1!$A:$A,الورقة1!$1:$1",
    Scope:    "الورقة1",
}); err != nil {
    fmt.Println(err)
}

الحصول على الاسم

func (f *File) GetDefinedName() []DefinedName

احصل على قائمة الأسماء لدفتر العمل وورقة العمل ضمن النطاق.

حذف الاسم

func (f *File) DeleteDefinedName(definedName *DefinedName) error

احذف الاسم المعرف استنادًا إلى الاسم المعطى ونطاق الاسم، مع النطاق الافتراضي يكون دفتر العمل. على سبيل المثال:

err := f.DeleteDefinedName(&excelize.DefinedName{
    Name:     "المبلغ",
    Scope:    "الورقة2",
})

تعيين خصائص تطبيق دفتر العمل

func (f *File) SetAppProps(appProperties *AppProperties) error

قم بتعيين خصائص التطبيق لدفتر العمل. يمكن تعيين الخصائص التي يمكن تعيينها كالتالي:

الخاصية الوصف
التطبيق اسم التطبيق الذي أنشأ هذا المستند
تغيير الحجم يُحدد عرض مصغرة المستند. يُضبط على true لتغيير مصغرة المستند، و false لقص مصغرة المستند
أمان المستند مستوى أمان المستند الممثل بقيمة رقمية
الشركة اسم الشركة المرتبطة بالمستند
الروابط محدثة يُحدد ما إذا كانت الارتباطات الخاصة بالمستند محدثة. يُضبط على true لارتباطات محدثة، و false لارتباطات غير محدثة
تم تغيير الروابط يُحدد ما إذا كان يجب استخدام الارتباطات الجديدة المحددة في هذا القسم لتحديث العلاقات الخاصة بالارتباطات في المرة القادمة التي يتم فيها فتح هذا المستند
إصدار التطبيق يُحدد إصدار التطبيق الذي أنشأ هذا المستند. يجب أن تكون القيمة في الصيغة XX.YYYY، حيث X و Y قيم رقمية، وإلا فإن الملف لن يتوافق مع القياسي

على سبيل المثال:

err := f.SetAppProps(&excelize.AppProperties{
    Application:       "Microsoft Excel",
    ScaleCrop:         true,
    DocSecurity:       3,
    Company:           "اسم الشركة",
    LinksUpToDate:     true,
    HyperlinksChanged: true,
    AppVersion:        "16.0000",
})

الحصول على خصائص تطبيق دفتر العمل

func (f *File) GetAppProps() (*AppProperties, error)

احصل على خصائص التطبيق لدفتر العمل.

تعيين خصائص المستند

func (f *File) SetDocProps(docProperties *DocProperties) error

تعيين الخصائص الأساسية للدفتر. يمكن تعيين الخصائص التالية:

الخاصية الوصف
الفئة فئة محتوى المستند
حالةالمحتوى حالة محتوى المستند. على سبيل المثال، القيم قد تتضمن "مسودة"، "تمت المراجعة"، و "نهائي"
تم الإنشاء الزمن الذي تم فيه إنشاء المستند، والممثل في تنسيق UTC بصيغة ISO 8601، على سبيل المثال 2019-06-04T22:00:10Z
المنشئ منشئ المستند
الوصف وصف محتوى المورد
المعرف مرجع واضح إلى المورد في السياق المعطى
الكلمات الرئيسية الكلمات الرئيسية في المستند
اللغة اللغة الرئيسية لمحتوى المستند
آخر تعديلبواسطة المستخدم الذي قام بأخر تعديل في المستند
معدل الزمن الذي تم فيه تعديل المستند، والممثل في تنسيق UTC بصيغة ISO 8601، على سبيل المثال 2019-06-04T22:00:10Z
نسخة إصدار المراجعة للمستند
الموضوع موضوع المستند
العنوان عنوان المستند
الإصدار رقم الإصدار، الذي يتم تحديده بواسطة المستخدم أو التطبيق

على سبيل المثال:

err := f.SetDocProps(&excelize.DocProperties{
    Category:       "الفئة",
    ContentStatus:  "مسودة",
    Created:        "2019-06-04T22:00:10Z",
    Creator:        "Go Excelize",
    Description:    "هذا الملف تم إنشاؤه بواسطة Go Excelize",
    Identifier:     "xlsx",
    Keywords:       "جدول بيانات",
    LastModifiedBy: "Go Author",
    Modified:       "2019-06-04T22:00:10Z",
    Revision:       "0",
    Subject:        "موضوع الاختبار",
    Title:          "عنوان الاختبار",
    Language:       "en-US",
    Version:        "1.0.0",
})

الحصول على خصائص المستند

func (f *File) GetDocProps() (*DocProperties, error)

الحصول على الخصائص الأساسية للدفتر.

حماية الدفتر

func (f *File) ProtectWorkbook(opts *WorkbookProtectionOptions) error

حماية هيكل الدفتر بكلمة مرور لمنع مستخدمين آخرين من رؤية أوراق العمل المخفية، إضافة، نقل، أو إخفاء أوراق العمل، وإعادة تسمية أوراق العمل. يدعم حقل AlgorithmName تحديد خوارزميات التجزئة XOR، MD4، MD5، SHA-1، SHA-256، SHA-384، أو SHA-512. إذا لم يتم تحديد خوارزمية التجزئة، يتم استخدام خوارزمية XOR بشكل افتراضي. على سبيل المثال، حماية هيكل الدفتر بكلمة مرور:

err := f.ProtectWorkbook(&excelize.WorkbookProtectionOptions{
    Password:      "كلمة السر",
    LockStructure: true,
})

WorkbookProtectionOptions يحدد الخيارات لحماية الدفتر.

type WorkbookProtectionOptions struct {
    AlgorithmName string
    Password      string
    LockStructure bool
    LockWindows   bool
}

إلغاء حماية الدفتر

func (f *File) UnprotectWorkbook(password ...string) error

إلغاء حماية الدفتر، مع تحديد معلمة اختيارية للكلمة السرية للتحقق وإزالة حماية الدفتر.