دفتر العمل

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

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 ما إذا كان يتم تطبيق تنسيق الأرقام لقيمة الخلية أو الحصول على القيمة الأولية.

يحدّد UnzipSizeLimit حد حجم فك الضغط بالبايت عند فتح جدول البيانات ، ويجب أن تكون هذه القيمة أكبر من أو تساوي UnzipXMLSizeLimit ، الحد الافتراضي للحجم هو 16 غيغابايت.

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

يحدد ShortDatePattern رمز تنسيق رقم التاريخ القصير. في تطبيقات جداول البيانات ، تعرض تنسيقات التاريخ الأرقام التسلسلية للتاريخ والوقت كقيم للتاريخ. تستجيب تنسيقات التاريخ التي تبدأ بعلامة النجمة (*) للتغييرات في إعدادات التاريخ والوقت الإقليمية المحددة لنظام التشغيل. لا تتأثر التنسيقات التي لا تحتوي على علامة النجمة بإعدادات نظام التشغيل. يحدد ShortDatePattern المستخدم لتنسيقات التاريخ التي تبدأ بعلامة النجمة.

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

يحدد LongTimePattern رمز تنسيق الرقم لفترة طويلة.

يحدد CultureInfo رمز البلد لتطبيق كود تنسيق رقم اللغة المدمج الذي يؤثر على إعدادات اللغة المحلية للنظام.

HeaderFooterImagePositionType هو نوع موضع صورة الرأس والتذييل.

type HeaderFooterImagePositionType byte

يقوم هذا القسم بتعريف أنواع مواضع صور الرأس والتذييل في ورقة العمل.

const (
    HeaderFooterImagePositionLeft HeaderFooterImagePositionType = iota
    HeaderFooterImagePositionCenter
    HeaderFooterImagePositionRight
)

تُطابق CustomProperty مباشرةً الخاصية المخصصة للمصنف. قد يكون نوع تاريخ القيمة أحد الأنواع التالية: int32، float64، string، bool، time.Time، أو nil.

type CustomProperty struct {
    Name  string
    Value interface{}
}

تعرف CalcPropsOptions مجموعة الخصائص التي تستخدمها التطبيق لتسجيل حالة الحساب والتفاصيل.

type CalcPropsOptions struct {
    CalcID                *uint
    CalcMode              *string
    FullCalcOnLoad        *bool
    RefMode               *string
    Iterate               *bool
    IterateCount          *uint
    IterateDelta          *float64
    FullPrecision         *bool
    CalcCompleted         *bool
    CalcOnSave            *bool
    ConcurrentCalc        *bool
    ConcurrentManualCount *uint
    ForceFullCalc         *bool
}

قم بإنشاء جدول بيانات

func NewFile(opts ...Options) *File

يوفر NewFile وظيفة لإنشاء ملف جديد بواسطة القالب الافتراضي. سيحتوي المصنف الذي تم إنشاؤه حديثًا بشكل افتراضي على ورقة عمل باسم Sheet1. فمثلا:

افتح

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

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

f, err := excelize.OpenFile("المصنف1.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

يقوم Close بإغلاق وتنظيف الملف المؤقت المفتوح لجدول البيانات.

قم بإنشاء ورقة عمل

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

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

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

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

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

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

func (f *File) MoveSheet(source, target string) error

MoveSheet تنقل ورقة إلى موضع محدد في المصنف. تنقل الوظيفة ورقة المصدر قبل ورقة الهدف. بعد النقل، سيتم نقل الأوراق الأخرى إلى اليسار أو اليمين. إذا كانت الورقة بالفعل في الموضع المستهدف، فلن تقوم الوظيفة بأي إجراء. لا يعني هذا أن هذه الوظيفة ستقوم بإلغاء تجميع كل الأوراق بعد النقل. نقل ورقة2 قبل ورقة1:

err := f.MoveSheet("ورقة2", "ورقة1")

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

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

يوفر CopySheet وظيفة لتكرار ورقة العمل من خلال إعطاء فهرس ورقة العمل المصدر والهدف. لاحظ أنه لا يدعم حاليًا المصنفات المكررة التي تحتوي على جداول أو مخططات أو صور. فمثلا:

// 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

توفر GroupSheets وظيفة لتجميع أوراق العمل حسب اسم أوراق العمل المحدد. يجب أن تحتوي أوراق العمل الجماعية على ورقة عمل نشطة.

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

func (f *File) UngroupSheets() error

توفر UngroupSheets وظيفة لفك تجميع أوراق العمل.

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

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

يوفر SetSheetBackground وظيفة لتعيين صورة الخلفية عن طريق اسم ورقة العمل ومسار الملف. أنواع الصور المدعومة: BMP و EMF و EMZ و GIF و JPEG و JPG و PNG و SVG و TIF و TIFF و WMF و WMZ.

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

يوفر SetSheetBackgroundFromBytes وظيفة لتعيين صورة الخلفية عن طريق اسم ورقة العمل المعطى واسم الامتداد وبيانات الصورة. أنواع الصور المدعومة: BMP و EMF و EMZ و GIF و JPEG و JPG و PNG و SVG و TIF و TIFF و WMF و WMZ.

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

func (f *File) SetActiveSheet(index int)

يوفر SetActiveSheet وظيفة لتعيين الورقة النشطة الافتراضية للمصنف بواسطة فهرس معين. لاحظ أن الفهرس النشط يختلف عن المعرف الذي تم إرجاعه بواسطة الوظيفة GetSheetMap. يجب أن يكون أكبر أو يساوي 0 وأقل من إجمالي أرقام ورقة العمل.

احصل على فهرس الورقة النشط

func (f *File) GetActiveSheetIndex() int

يوفر GetActiveSheetIndex وظيفة للحصول على ورقة عمل نشطة من المصنف. إذا لم يتم العثور على الورقة النشطة ، فستعرض عددًا صحيحًا 0.

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

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

يوفر SetSheetVisible وظيفة لتعيين ورقة العمل مرئية من خلال اسم ورقة العمل المحدد. يجب أن يحتوي المصنف على ورقة عمل مرئية واحدة على الأقل. إذا تم تنشيط ورقة العمل المحددة ، فسيتم إبطال هذا الإعداد. لا تعمل المعلمة الاختيارية الثالثة veryHidden إلا عندما تكون visible هي false.

على سبيل المثال ، إخفاء Sheet1:

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

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

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

يوفر GetSheetVisible وظيفة لإظهار ورقة العمل من خلال اسم ورقة العمل المحدد. على سبيل المثال ، احصل على الحالة المرئية لـ Sheet1:

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

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

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

يوفر SetSheetProps وظيفة لتعيين خصائص ورقة العمل. الخصائص التي يمكن تعيينها هي:

خيارات اكتب وصف
CodeName *string يحدد اسما ثابتا للورقة، والذي يجب ألا يتغير بمرور الوقت، ولا يتغير من إدخال المستخدم. يجب استخدام هذا الاسم بواسطة التعليمات البرمجية للإشارة إلى ورقة معينة
EnableFormatConditionsCalculation *bool بيان ما إذا كان سيتم تقييم حسابات التنسيق الشرطي. إذا تم تعيينها إلى false، فلن يتم تحديث قيم الصغر/الحد الأقصى لمقاييس الألوان أو أشرطة البيانات أو قيم العتبة في قواعد Top N. أساسا التنسيق الشرطي "calc" هو قبالة
Published *bool بالإشارة إلى ما إذا كان قد تم نشر ورقة العمل أم لا، تكون القيمة الافتراضية هي true
AutoPageBreaks *bool بالإشارة إلى ما إذا كانت الورقة تعرض فواصل الصفحات التلقائية، تكون القيمة الافتراضية هي true
FitToPage *bool بالإشارة إلى ما إذا كان خيار طباعة احتواء الصفحة ممكنا أم لا، تكون القيمة الافتراضية هي false
TabColorIndexed *int يمثل قيمة اللون المفهرسة
TabColorRGB *string يمثل قيمة اللون ARGB (ألفا أحمر أخضر أزرق) القياسية
TabColorTheme *int يمثل الفهرس المستند إلى الصفر في المجموعة، مع الإشارة إلى قيمة معينة يتم التعبير عنها في جزء النسق
TabColorTint *float64 يحدد قيمة الصبغة المطبقة على اللون، والقيمة الافتراضية هي 0.0
OutlineSummaryBelow *bool للإشارة إلى ما إذا كانت صفوف الملخص تظهر أسفل التفاصيل في مخطط تفصيلي، عند تطبيق مخطط تفصيلي، تكون القيمة الافتراضية هي true
OutlineSummaryRight *bool للإشارة إلى ما إذا كانت أعمدة الملخص تظهر على يسار التفاصيل في مخطط تفصيلي، عند تطبيق مخطط تفصيلي، تكون القيمة الافتراضية هي true
BaseColWidth *uint8 يحدد عدد أحرف الحد الأقصى لعرض الأرقام لخط النمط العادي. لا تتضمن هذه القيمة حشو الهامش أو الحشو الإضافي لخطوط الشبكة. إنه فقط عدد الأحرف ، القيمة الافتراضية هي 8
DefaultColWidth *float64 يحدد عرض العمود الافتراضي الذي تم قياسه كعدد أحرف الحد الأقصى لعرض الأرقام لخط النمط العادي
DefaultRowHeight *float64 يحدد ارتفاع الصف الافتراضي الذي تم قياسه بحجم النقطة. التحسين حتى لا نضطر إلى كتابة الارتفاع على جميع الصفوف. يمكن كتابة ذلك إذا كان لمعظم الصفوف ارتفاع مخصص ، لتحقيق التحسين
CustomHeight *bool يحدد الارتفاع المخصص ، القيمة الافتراضية هي false
ZeroHeight *bool يحدد ما إذا كانت الصفوف مخفية، تكون القيمة الافتراضية هي false
ThickTop *bool يحدد ما إذا كانت الصفوف تحتوي على حد علوي سميك بشكل افتراضي، فإن القيمة الافتراضية هي false
ThickBottom *bool يحدد ما إذا كانت الصفوف تحتوي على حد سفلي سميك بشكل افتراضي، فإن القيمة الافتراضية هي false

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

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

f, enable := excelize.NewFile(), true
if err := f.SetSheetView("Sheet1", -1, &excelize.ViewOptions{
    RightToLeft: &enable,
}); err != nil {
    fmt.Println(err)
}
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("المصنف1.xlsx")

هناك 4 أنواع من الإعدادات المسبقة "خيارات التحجيم المخصصة" في تطبيقات جداول البيانات ، إذا كنت بحاجة إلى تعيين هذا النوع من خيارات القياس ، فيرجى استخدام وظائف SetSheetProps و SetPageLayout للتعامل مع خيارات القياس الأربعة هذه:

  1. لا تحجيم (طباعة الأوراق بحجمها الفعلي):

     disable := false
     if err := f.SetSheetProps("ورقة1", &excelize.SheetPropsOptions{
         FitToPage: &disable,
     }); err != nil {
         fmt.Println(err)
     }
    
  2. قم بتركيب الورقة على صفحة واحدة (تقليص النسخة المطبوعة بحيث تتناسب مع صفحة واحدة):

     enable := true
     if err := f.SetSheetProps("ورقة1", &excelize.SheetPropsOptions{
         FitToPage: &enable,
     }); err != nil {
         fmt.Println(err)
     }
    
  3. احتواء جميع الأعمدة في صفحة واحدة (تقليص النسخة المطبوعة بحيث تكون بعرض صفحة واحدة):

     enable, zero := true, 0
     if err := f.SetSheetProps("ورقة1", &excelize.SheetPropsOptions{
         FitToPage: &enable,
     }); err != nil {
         fmt.Println(err)
     }
     if err := f.SetPageLayout("ورقة1", &excelize.PageLayoutOptions{
         FitToHeight: &zero,
     }); err != nil {
         fmt.Println(err)
     }
    
  4. احتواء جميع الصفوف في صفحة واحدة (تقليص النسخة المطبوعة بحيث تكون بارتفاع صفحة واحدة):

     enable, zero := true, 0
     if err := f.SetSheetProps("ورقة1", &excelize.SheetPropsOptions{
         FitToPage: &enable,
     }); err != nil {
         fmt.Println(err)
     }
     if err := f.SetPageLayout("ورقة1", &excelize.PageLayoutOptions{
         FitToWidth: &zero,
     }); err != nil {
         fmt.Println(err)
     }
    

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

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

يوفر GetSheetProps دالة للحصول على خصائص ورقة العمل. الخصائص التي يمكن تعيينها هي:

خيارات اكتب وصف
DefaultGridColor *bool الإشارة إلى أن التطبيق المستهلك يجب أن يستخدم لون خطوط الشبكة الافتراضي (يعتمد على النظام). يتجاوز أي لون محدد في colorId ، القيمة الافتراضية هي true
RightToLeft *bool الإشارة إلى ما إذا كانت الورقة في وضع العرض "من اليمين إلى اليسار". عندما يكون العمود A في هذا الوضع ، يكون في أقصى اليمين ، العمود B ؛ هو عمود واحد يسار العمود A، وهكذا. أيضا ، يتم عرض المعلومات في الخلايا بتنسيق من اليمين إلى اليسار ، والقيمة الافتراضية هي false
ShowFormulas *bool للإشارة إلى ما إذا كان يجب أن تعرض هذه الورقة صيغا ، فإن القيمة الافتراضية هي false
ShowGridLines *bool بالإشارة إلى ما إذا كان يجب أن تعرض هذه الورقة خطوط الشبكة ، فإن القيمة الافتراضية هي true
ShowRowColHeaders *bool بالإشارة إلى ما إذا كان يجب أن تعرض الورقة عناوين الصفوف والأعمدة، تكون القيمة الافتراضية هي true
ShowRuler *bool بالإشارة إلى أن هذه الورقة يجب أن تعرض المسطرة ، فإن القيمة الافتراضية هي true
ShowZeros *bool الإشارة إلى ما إذا كان يجب "إظهار صفر في الخلايا التي لها قيمة صفرية". عند استخدام صيغة للإشارة إلى خلية أخرى فارغة، تصبح القيمة المشار إليها 0 عندما تكون العلامة true، وتكون القيمة الافتراضية هي true
TopLeftCell *string يحدد موقعا للخلية المرئية العلوية اليسرى موقع الخلية المرئية العلوية اليسرى في الجزء السفلي الأيسر (عندما تكون في الوضع من اليسار إلى اليمين)
View *string للإشارة إلى كيفية عرض الورقة ، فإنها تستخدم افتراضيا سلسلة فارغة وخيارات متاحة: normal و pageBreakPreview و pageLayout
ZoomScale *float64 يحدد تكبير تكبير النافذة للعرض الحالي الذي يمثل قيم النسبة المئوية. تقتصر هذه السمة على قيم تتراوح من 10 إلى 400. مقياس أفقي ورأسي معا ، القيمة الافتراضية هي 100

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

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

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

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

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

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

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

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

يوفر SetPageLayout وظيفة لتعيين تخطيط صفحة ورقة العمل. الخيارات المتاحة:

حدد Size حجم ورق ورقة العمل ، وحجم الورق الافتراضي لورقة العمل هو "ورقة الرسالة (8.5 بوصة × 11 بوصة)". يوضح ما يلي حجم الورق مرتبة حسب رقم فهرس Excelize:

فهرس حجم الورق
1 ورقة الرسالة (8.5 بوصة × 11 بوصة)
2 رسالة ورقية صغيرة (8.5 بوصة × 11 بوصة)
3 ورق التابلويد (11 بوصة × 17 بوصة)
4 ورق دفتر الأستاذ (17 بوصة × 11 بوصة)
5 ورقة قانونية (8.5 بوصة × 14 بوصة)
6 ورقة البيان (5.5 بوصة × 8.5 بوصة)
7 ورقة تنفيذية (7.25 بوصة × 10.5 بوصة)
8 ورق A3 (297 مم × 420 مم)
9 ورق A4 (210 مم × 297 مم)
10 ورق صغير مقاس A4 (210 مم × 297 مم)
11 ورق A5 (148 مم × 210 مم)
12 ورق B4 (250 مم × 353 مم)
13 ورق B5 (176 مم × 250 مم)
14 ورق فوليو (8.5 بوصة × 13 بوصة)
15 ورق الكوارتو (215 مم × 275 مم)
16 ورق قياسي (10 بوصة × 14 بوصة)
17 ورق قياسي (11 بوصة × 17 بوصة)
18 ورقة الملاحظات (8.5 بوصة × 11 بوصة)
19 #9 ظرف (3.875 بوصة × 8.875 بوصة)
20 #10 ظرف (4.125 بوصة × 9.5 بوصة)
21 #11 ظرف (4.5 بوصة × 10.375 بوصة)
22 #12 ظرف (4.75 بوصة × 11 بوصة)
23 #14 ظرف (5 بوصة × 11.5 بوصة)
24 ورق ج (17 بوصة × 22 بوصة)
25 ورقة د (22 بوصة × 34 بوصة)
26 والأوراق (34 بوصة × 44 بوصة)
27 مغلف DL (110 مم × 220 مم)
28 مظروف C5 (162 مم × 229 مم)
29 غلاف C3 (324 مم × 458 مم)
30 مغلف C4 (229 مم × 324 مم)
31 مغلف C6 (114 مم × 162 مم)
32 مغلف C65 (114 مم × 229 مم)
33 مغلف B4 (250 مم × 353 مم)
34 مغلف B5 (176 مم × 250 مم)
35 مغلف B6 (176 مم × 125 مم)
36 غلاف إيطاليا (110 مم × 230 مم)
37 مظروف العاهل (3.875 بوصة × 7.5 بوصة)
38 6¾ ظرف (3.625 بوصة × 6.5 بوصة)
39 مروحية قياسية أمريكية (14.875 بوصة × 11 بوصة)
40 مروحة قياسية ألمانية (8.5 بوصة × 12 بوصة)
41 fanfold القانونية الألمانية (8.5 بوصة × 13 بوصة)
42 ايزو ب4 (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 ورق SuperA/SuperA/A4 (227 مم × 356 مم)
58 ورق SuperB/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 تم تدوير المظروف الياباني Kaku رقم 2
85 تم تدوير المظروف الياباني Kaku رقم 3
86 تم تدوير المظروف الياباني Chou رقم 3
87 تم تدوير المظروف الياباني Chou رقم 4
88 B6 (JIS) (128 مم × 182 مم)
89 تم تدوير B6 (JIS) (182 مم × 128 مم)
90 12 بوصة × 11 بوصة
91 المغلف الياباني أنت #4
92 تم تدوير المظروف الياباني رقم #4
93 لجان المقاومة الشعبية 16K (146 مم × 215 مم)
94 لجان المقاومة الشعبية 32K (97 مم × 151 مم)
95 لجان المقاومة الشعبية 32K (كبير) (97 مم × 151 مم)
96 مظروف جمهورية الصين الشعبية رقم 1 (102 مم × 165 مم)
97 مظروف جمهورية الصين الشعبية رقم 2 (102 مم × 176 مم)
98 مظروف جمهورية الصين الشعبية رقم 3 (125 مم × 176 مم)
99 مظروف جمهورية الصين الشعبية رقم 4 (110 مم × 208 مم)
100 مظروف جمهورية الصين الشعبية رقم 5 (110 مم × 220 مم)
101 مظروف جمهورية الصين الشعبية رقم 6 (120 مم × 230 مم)
102 مظروف جمهورية الصين الشعبية رقم 7 (160 مم × 230 مم)
103 مظروف جمهورية الصين الشعبية رقم 8 (120 مم × 309 مم)
104 مظروف جمهورية الصين الشعبية رقم 9 (229 مم × 324 مم)
105 مظروف جمهورية الصين الشعبية رقم 10 (324 مم × 458 مم)
106 استدارة لجان المقاومة الشعبية 16K
107 لجان المقاومة الشعبية 32K استدارة
108 جمهورية الصين الشعبية 32K (كبير) استدارة
109 تم تدوير مظروف جمهورية الصين الشعبية رقم 1 (165 مم × 102 مم)
110 تم تدوير مظروف جمهورية الصين الشعبية رقم 2 (176 مم × 102 مم)
111 تم تدوير مظروف جمهورية الصين الشعبية رقم 3 (176 مم × 125 مم)
112 تم تدوير مظروف جمهورية الصين الشعبية رقم 4 (208 مم × 110 مم)
113 تم تدوير مظروف جمهورية الصين الشعبية رقم 5 (220 مم × 110 مم)
114 تم تدوير مظروف جمهورية الصين الشعبية رقم 6 (230 مم × 120 مم)
115 تم تدوير مظروف جمهورية الصين الشعبية رقم 7 (230 مم × 160 مم)
116 تم تدوير مظروف جمهورية الصين الشعبية رقم 8 (309 مم × 120 مم)
117 تم تدوير مظروف جمهورية الصين الشعبية رقم 9 (324 مم × 229 مم)
118 تم تدوير مظروف جمهورية الصين الشعبية رقم 10 (458 مم × 324 مم)

حدد Orientation المحدد في اتجاه ورقة العمل ، والاتجاه الافتراضي هو portrait. القيم المحتملة لهذا الحقل هي portrait و landscape.

حدد FirstPageNumber رقم أول صفحة مطبوعة. إذا لم يتم تحديد قيمة ، فسيتم افتراض "تلقائي".

حدد AdjustTo مقياس الطباعة. هذه السمة مقيدة بقيم تتراوح من 10 (10٪) إلى 400 (400٪). يتم تجاوز هذا الإعداد عند استخدام FitToWidth و / أو FitToHeight.

حدد FitToHeight عدد الصفحات الرأسية التي سيتم احتواؤها.

حدد FitToWidth عدد الصفحات الأفقية التي يجب احتواؤها.

حدد BlackAndWhite الطباعة بالأبيض والأسود.

يحدد PageOrder ترتيب الصفحات المتعددة. القيم المقبولة: overThenDown و downThenOver.

  • على سبيل المثال ، عيّن تخطيط الصفحة لـ Sheet1 بطباعة بالأبيض والأسود ، ورقم الصفحة الأول المطبوع من 2 ، وورق A4 صغير الحجم أفقيًا (210 مم × 297 مم) ، صفحتان رأسيتان للملاءمة وصفحتان أفقيتان لملاءمتهما:
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)

يوفر GetPageLayout وظيفة للحصول على تخطيط صفحة ورقة العمل.

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

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

يوفر SetPageMargins وظيفة لتعيين هوامش صفحة ورقة العمل. الخيارات المتاحة:

خيارات اكتب وصف
Bottom *float64 الأسفل
Footer *float64 تذييل
Header *float64 رأس
Left *float64 اليسار
Right *float64 الصحيح
Top *float64 قمة
Horizontally *bool توسيط في الصفحة: أفقيًا
Vertically *bool توسيط في الصفحة: عموديًا

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

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

يوفر GetPageMargins وظيفة للحصول على هوامش صفحة ورقة العمل.

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

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

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

خيارات اكتب وصف
Date1904 *bool يشير إلى ما إذا كان سيتم استخدام نظام تاريخ 1900 أو 1904 عند تحويل أوقات التاريخ التسلسلي في المصنف إلى تواريخ.
FilterPrivacy *bool تحدد قيمة منطقية تشير إلى ما إذا كان التطبيق قد قام بفحص المصنف لمعرفة معلومات التعريف الشخصية (PII). إذا تم تعيين هذه العلامة ، فإن التطبيق يحذر المستخدم في أي وقت يقوم فيه المستخدم بإجراء من شأنه إدراج معلومات تحديد الهوية الشخصية في المستند.
CodeName *string يحدد الاسم الرمزي للتطبيق الذي أنشأ هذا المصنف. استخدم هذه السمة لتعقب محتوى الملف في الإصدارات المتزايدة من التطبيق.

احصل على خصائص المصنف

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

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

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

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

يوفر SetHeaderFooter وظيفة لتعيين الرؤوس والتذييلات من خلال اسم ورقة العمل المحددة وأحرف التحكم.

يتم تحديد الرؤوس والتذييلات باستخدام حقول الإعدادات التالية:

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

يمكن استخدام رموز التنسيق التالية في 6 حقول من نوع السلسلة: OddHeader, OddFooter, EvenHeader, EvenFooter, FirstFooter, FirstHeader

كود التنسيق وصف
&& الشخصية "&"
&font-size حجم خط النص ، حيث يكون حجم الخط هو حجم الخط العشري بالنقاط
&"font name,font type" سلسلة اسم الخط النصي ، واسم الخط ، وسلسلة نوع الخط النصي ، ونوع الخط
&"-,Regular" تنسيق النص العادي. تبديل الوضعين الغامق والمائل إلى إيقاف التشغيل
&A اسم علامة تبويب ورقة العمل الحالية
&B or &"-,Bold" تنسيق نص عريض ، من إيقاف تشغيل إلى تشغيل ، أو العكس. الوضع الافتراضي معطل
&D التاريخ الحالي
&C قسم المركز
&E تنسيق نص مزدوج التسطير
&F اسم ملف المصنف الحالي
&G كائن رسومي كخلفية (استخدم AddHeaderFooterImage)
&H تنسيق نص الظل
&I or &"-,Italic" تنسيق نص مائل
&K لون خط النص
تم تحديد لون RGB على أنه RRGGBB
يتم تحديد لون النسق على أنه TTSNNN حيث يكون TT هو معرف لون النسق ، S إما "+" أو "-" قيمة الصبغة / الظل ، و NNN هي قيمة الصبغة / الظل
&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`,
})

يوضح هذا المثال:

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

إضافة صورة رأس وتذييل

func (f *File) AddHeaderFooterImage(sheet string, opts *HeaderFooterImageOptions) error

توفر AddHeaderFooterImage آلية لتعيين الرسومات التي يمكن الرجوع إليها في تعريفات الرأس والتذييل عبر &G، وأنواع الصور المدعومة: EMF، EMZ، GIF، JPEG، JPG، PNG، SVG، TIF، TIFF، WMF و WMZ.

تعيين الاسم المحدد

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

يوفر SetDefinedName دالة لتعيين الأسماء المحددة للمصنف أو ورقة العمل. إذا لم يتم تحديد النطاق ، فإن النطاق الافتراضي هو المصنف. فمثلا:

err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "Amount",
    RefersTo: "Sheet1!$A$2:$D$5",
    Comment:  "defined name comment",
    Scope:    "Sheet2",
})

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

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

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

إذا قمت بملء خاصية RefersTo بنطاق عمود واحد فقط بدون فاصلة، فسوف تعمل كـ "الأعمدة التي سيتم تكرارها على اليسار" فقط. على سبيل المثال:

if err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "_xlnm.Print_Titles",
    RefersTo: "Sheet1!$A:$A",
    Scope:    "Sheet1",
}); err != nil {
    fmt.Println(err)
}

إذا قمت بملء خاصية RefersTo بنطاق صف واحد فقط دون فاصلة، فسوف تعمل كـ "الصفوف التي سيتم تكرارها في الأعلى" فقط. على سبيل المثال:

if err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "_xlnm.Print_Titles",
    RefersTo: "Sheet1!$1:$1",
    Scope:    "Sheet1",
}); err != nil {
    fmt.Println(err)
}

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

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

يوفر GetDefinedName دالة للحصول على الأسماء المحددة للمصنف أو ورقة العمل.

حذف الاسم المحدد

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

يوفر DeleteDefinedName وظيفة لحذف الأسماء المعرفة للمصنف أو ورقة العمل. إذا لم يتم تحديد النطاق ، فإن النطاق الافتراضي هو المصنف. فمثلا:

err := f.DeleteDefinedName(&excelize.DefinedName{
    Name:     "Amount",
    Scope:    "Sheet2",
})

تعيين خصائص التطبيق

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

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

خاصية وصف
Application اسم التطبيق الذي أنشأ هذا المستند.
ScaleCrop يشير إلى وضع عرض الصورة المصغرة للوثيقة. اضبط هذا العنصر على true لتمكين تغيير حجم الصورة المصغرة للمستند إلى العرض. اضبط هذا العنصر على false لتمكين اقتصاص الصورة المصغرة للمستند لإظهار الأقسام التي تناسب العرض فقط.
DocSecurity مستوى الأمان للمستند كقيمة عددية. يتم تعريف أمان المستند على أنه:
1 - المستند محمي بكلمة مرور
2 - يُوصى بفتح المستند للقراءة فقط
3 - يتم فرض المستند لفتحه للقراءة فقط
4 - تم قفل المستند للتعليق التوضيحي
Company اسم الشركة المرتبطة بالمستند.
LinksUpToDate يشير إلى ما إذا كانت الارتباطات التشعبية في مستند محدثة أم لا. عيّن هذا العنصر على true للإشارة إلى تحديث الارتباطات التشعبية. عيّن هذا العنصر على false للإشارة إلى أن الارتباطات التشعبية قديمة.
HyperlinksChanged تعيين ارتباط تشعبي واحد أو أكثر في هذا الجزء تم تحديثه حصريًا في هذا الجزء بواسطة المنتج. يجب على المنتج التالي الذي سيفتح هذا المستند تحديث علاقات الارتباط التشعبي بالارتباطات التشعبية الجديدة المحددة في هذا الجزء.
AppVersion يحدد إصدار التطبيق الذي أنتج هذا المستند. يجب أن يكون محتوى هذا العنصر بالصيغة XX.YYYY حيث تمثل X و Y قيمًا عددية ، أو تعتبر الوثيقة غير متوافقة.

فمثلا:

err := f.SetAppProps(&excelize.AppProperties{
    Application:       "Microsoft Excel",
    ScaleCrop:         true,
    DocSecurity:       3,
    Company:           "Company Name",
    LinksUpToDate:     true,
    HyperlinksChanged: true,
    AppVersion:        "16.0000",
})

احصل على خصائص التطبيق

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

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

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

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

يوفر SetDocProps وظيفة لتعيين خصائص الوثيقة الأساسية. الخصائص التي يمكن تعيينها هي:

خاصية وصف
Category تصنيف محتوى هذه الحزمة.
ContentStatus حالة المحتوى. فمثلا: قد تتضمن القيم "Draft" و "Reviewed" و "Final"
Created وقت إنشاء محتوى المورد.
Creator الكيان مسؤول بشكل أساسي عن صنع محتوى المورد
Description شرح لمحتوى المصدر.
Identifier إشارة لا لبس فيها إلى المورد ضمن سياق معين.
Keywords مجموعة محددة من الكلمات الأساسية لدعم البحث والفهرسة. عادةً ما تكون هذه قائمة بالمصطلحات غير المتوفرة في أي مكان آخر في الخصائص.
Language لغة المحتوى الفكري للمصدر.
LastModifiedBy المستخدم الذي أجرى التعديل الأخير. التعريف خاص بالبيئة.
Modified الوقت المعدل لمحتوى المورد.
Revision رقم مراجعة محتوى المصدر.
Subject موضوع محتوى المصدر.
Title تم إعطاء الاسم للمورد.
Version رقم الإصدار. يتم تعيين هذه القيمة من قبل المستخدم أو بواسطة التطبيق.

فمثلا:

err := f.SetDocProps(&excelize.DocProperties{
    Category:       "category",
    ContentStatus:  "Draft",
    Created:        "2019-06-04T22:00:10Z",
    Creator:        "Go Excelize",
    Description:    "This file created by Go Excelize",
    Identifier:     "xlsx",
    Keywords:       "Spreadsheet",
    LastModifiedBy: "Go Author",
    Modified:       "2019-06-04T22:00:10Z",
    Revision:       "0",
    Subject:        "Test Subject",
    Title:          "Test Title",
    Language:       "en-US",
    Version:        "1.0.0",
})

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

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

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

تعيين خصائص مخصصة

func (f *File) SetCustomProps(prop CustomProperty) error

توفر دالة SetCustomProps دالة لتعيين خصائص ملف مخصصة باستخدام اسم وقيمة الخاصية المحددين. إذا كان اسم الخاصية موجودًا بالفعل، فسيتم تحديثه، وإلا فسيتم إضافة خاصية جديدة. يمكن أن تكون القيمة من نوع int32، أو float64، أو bool، أو string، أو time.Time، أو nil. سيتم حذف الخاصية إذا كانت قيمتها nil. تُرجع الدالة خطأً إذا لم تكن قيمة الخاصية من النوع الصحيح.

الحصول على خصائص مخصصة

func (f *File) GetCustomProps() ([]CustomProperty, error)

توفر GetCustomProps وظيفة للحصول على خصائص ملف مخصصة.

تعيين خصائص الحساب

func (f *File) SetCalcProps(opts *CalcPropsOptions) error

يوفر SetCalcProps دالة لتعيين خصائص الحساب.

القيمة الاختيارية لخاصية CalcMode هي: manual أو auto أو autoNoTable.

القيمة الاختيارية للخاصية RefMode هي: A1 أو R1C1.

الحصول على خصائص الحساب

func (f *File) GetCalcProps() (CalcPropsOptions, error)

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

حماية المصنف

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

يوفر ProtectWorkbook وظيفة لمنع المستخدمين الآخرين من تغيير أو نقل أو حذف البيانات في مصنف عن طريق الخطأ أو عن عمد. الحقل الاختياري AlgorithmName خوارزمية التجزئة المحددة ، ودعم XOR و MD4 و MD5 و SHA-1 و SHA2-56 و SHA-384 و SHA-512 حاليًا ، إذا لم يتم تحديد خوارزمية تجزئة ، فسيتم استخدام خوارزمية XOR كإعداد افتراضي. على سبيل المثال ، حماية المصنف بإعدادات الحماية:

err := f.ProtectWorkbook(&excelize.WorkbookProtectionOptions{
    Password:      "password",
    LockStructure: true,
})

WorkbookProtectionOptions تعيين إعدادات حماية المصنف مباشرة.

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

إلغاء حماية المصنف

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

يوفر UnprotectWorkbook وظيفة لإزالة الحماية للمصنف ، وحدد معلمة كلمة المرور الاختيارية لإزالة حماية المصنف باستخدام التحقق من كلمة المرور.

results matching ""

    No results matching ""