ورقة العمل

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

func (f *File) SetColVisible(sheet, col string, visible bool) error

تعيين رؤية العمود المعطى استنادًا إلى اسم ورقة العمل المحدد واسم العمود. تكون هذه الوظيفة آمنة للتنفيذ المتزامن. على سبيل المثال، لإخفاء العمود D في ورقة العمل المسماة Sheet1:

err := f.SetColVisible("Sheet1", "D", false)

إخفاء الأعمدة D إلى F في ورقة العمل المسماة Sheet1:

err := f.SetColVisible("Sheet1", "D:F", false)

تعيين عرض العمود

func (f *File) SetColWidth(sheet, startCol, endCol string, width float64) error

تعيين عرض عمود أو أكثر استنادًا إلى اسم ورقة العمل المعطاة، نطاق الأعمدة، وقيمة العرض. تكون هذه الوظيفة آمنة للتنفيذ المتزامن. على سبيل المثال، لتعيين عرض الأعمدة A إلى H في ورقة العمل المسماة Sheet1 إلى 20:

err := f.SetColWidth("Sheet1", "A", "H", 20)

تعيين ارتفاع الصف

func (f *File) SetRowHeight(sheet string, row int, height float64) error

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

err := f.SetRowHeight("Sheet1", 1, 50)

تعيين رؤية الصف

func (f *File) SetRowVisible(sheet string, row int, visible bool) error

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

err := f.SetRowVisible("Sheet1", 2, false)

الحصول على اسم ورقة العمل

func (f *File) GetSheetName(index int) string

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

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

func (f *File) GetColVisible(sheet, column string) (bool, error)

الحصول على رؤية العمود المحدد في ورقة العمل استناداً إلى اسم ورقة العمل واسم العمود المعطي. قيمة الإرجاع true تدل على الرؤية، بينما false تدل على عدم الرؤية. تكون هذه الوظيفة آمنة للتنفيذ المتزامن. على سبيل المثال، للحصول على رؤية العمود D في ورقة العمل المسماة Sheet1:

visible, err := f.GetColVisible("Sheet1", "D")

الحصول على عرض العمود

func (f *File) GetColWidth(sheet, col string) (float64, error)

الحصول على عرض العمود المحدد في ورقة العمل استنادًا إلى اسم ورقة العمل واسم العمود المعطي. تكون هذه الوظيفة آمنة للتنفيذ المتزامن.

الحصول على ارتفاع الصف

func (f *File) GetRowHeight(sheet string, row int) (float64, error)

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

height, err := f.GetRowHeight("Sheet1", 1)

الحصول على رؤية الصف

func (f *File) GetRowVisible(sheet string, row int) (bool, error)

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

visible, err := f.GetRowVisible("Sheet1", 2)

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

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

الحصول على فهرس الورقة العمل المعطاة باسمها. إرجاع -1 إذا لم تكن الورقة العمل موجودة. يمكن استخدام الفهرس المحصل عليه كمعلمة عند استدعاء وظيفة SetActiveSheet() لتعيين ورقة العمل الافتراضية للدفتر.

الحصول على خريطة الأوراق العمل

func (f *File) GetSheetMap() map[int]string

الحصول على خريطة جميع الأوراق العمل، وأوراق الرسم البياني، وأوراق الحوار في الدفتر، ممثلة بواسطة معرف واسم.

f، err := excelize.OpenFile("Book1.xlsx")
if err != nil {
    return
}
defer func() {
    if err := f.Close(); err != nil {
        fmt.Println(err)
    }
}()
for index, name := range f.GetSheetMap() {
    fmt.Println(index, name)
}

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

func (f *File) GetSheetList() []string

الحصول على قائمة الأوراق العمل، بما في ذلك أوراق العمل، وأوراق الرسم البياني، وأوراق الحوار بنفس الترتيب الذي تظهر به في الدفتر.

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

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

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

إدراج أعمدة

func (f *File) InsertCols(sheet, col string, n int) error

إدراج أعمدة فارغة قبل العمود المحدد استنادًا إلى اسم ورقة العمل المعطى، واسم العمود، وعدد الأعمدة المراد إدراجها. على سبيل المثال، إدراج 2 أعمدة فارغة قبل العمود C في ورقة العمل المسماة Sheet1:

err := f.InsertCols("Sheet1", "C", 2)

إدراج صفوف

func (f *File) InsertRows(sheet string, row, n int) error

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

err := f.InsertRows("Sheet1", 3, 2)

إلحاق ونسخ الصفوف

func (f *File) DuplicateRow(sheet string, row int) error

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

err := f.DuplicateRow("Sheet1", 2)

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

تكرار الصف

func (f *File) DuplicateRowTo(sheet string, row, row2 int) error

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

err := f.DuplicateRowTo("Sheet1", 2, 7)

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

تعيين مستوى الإطار للصف

func (f *File) SetRowOutlineLevel(sheet string, row int, level uint8) error

إنشاء مجموعة استنادًا إلى اسم ورقة العمل ورقم الصف ومعامل مستوى الإطار. على سبيل المثال، إنشاء مجموعة مستوى 1 في الصف الثاني من ورقة العمل المسماة Sheet1.

تعيين مستوى الإطار للصف

err := f.SetRowOutlineLevel("Sheet1", 2, 1)

تعيين مستوى مخطط العمود

func (f *File) SetColOutlineLevel(sheet, col string, level uint8) error

أنشئ مجموعة بناءً على اسم الورقة المعطاة، واسم العمود، ومعامل مستوى المخطط. على سبيل المثال، أنشئ مجموعة مستوى 2 في العمود D من ورقة العمل المسماة Sheet1.

تعيين مستوى مخطط العمود

err := f.SetColOutlineLevel("Sheet1", "D", 2)

الحصول على مستوى مخطط الصف

func (f *File) GetRowOutlineLevel(sheet string, row int) (uint8, error)

احصل على مستوى المخطط بناءً على اسم الورقة المعطى ورقم الصف. على سبيل المثال، احصل على مستوى المخطط للصف الثاني في ورقة العمل المسماة Sheet1.

level, err := f.GetRowOutlineLevel("Sheet1", 2)

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

func (f *File) GetColOutlineLevel(sheet, col string) (uint8, error)

احصل على مستوى المخطط بناءً على اسم الورقة المعطى واسم العمود. على سبيل المثال، احصل على مستوى المخطط للعمود D في ورقة العمل المسماة Sheet1.

level, err := f.GetColOutlineLevel("Sheet1", "D")

عارض الأعمدة

func (f *File) Cols(sheet string) (*Cols, error)

احصل على عارض الأعمدة لورقة العمل المحددة بناءً على اسم الورقة المعطى. هذه الدالة آمنة للتنفيذ متزامنة. استخدم عارض الأعمدة لقراءة البث المتدفق وتجوال الخلايا:

cols, err := f.Cols("Sheet1")
if err != nil {
    fmt.Println(err)
    return
}
for cols.Next() {
    col, err := cols.Rows()
    if err != nil {
        fmt.Println(err)
    }
    for _, rowCell := range col {
        fmt.Print(rowCell, "\t")
    }
    fmt.Println()
}

عارض الأعمدة - الحصول على قيم العمود الواحد

func (cols *Cols) Rows(opts ...Options) ([]string, error)

قم بإرجاع قيم جميع الصفوف في العمود الحالي.

عارض الأعمدة - عملية المرور

func (cols *Cols) Next() bool

ارجع true إذا كانت هناك قيم في العمود التالي.

عارض الأعمدة - التعامل مع الأخطاء

func (cols *Cols) Error() error

قم بإرجاع خطأ عند حدوث خطأ أثناء البحث عن العمود التالي.

عارض الصفوف

func (f *File) Rows(sheet string) (*Rows, error)

احصل على عارض الصفوف بناءً على اسم الورقة المعطاة. هذه الدالة آمنة للتنفيذ متزامنة. استخدم عارض الصفوف للتفاعل مع الخلايا لقراءة البث المتدفق:

rows, err := f.Rows("Sheet1")
if err != nil {
    fmt.Println(err)
    return
}
for rows.Next() {
    row, err := rows.Columns()
    if err != nil {
        fmt.Println(err)
    }
    for _, colCell := range row {
        fmt.Print(colCell, "\t")
    }
    fmt.Println()
}
if err = rows.Close(); err != nil {
    fmt.Println(err)
}

عارض الصفوف - عملية الصف الواحد

func (rows *Rows) Columns(opts ...Options) ([]string, error)

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

عارض الصفوف - عملية المرور

func (rows *Rows) Next() bool

تعيد true إذا وجدت قيمة في الصف القادم.

عارض الصفوف - التعامل مع الأخطاء

func (rows *Rows) Error() error

تعيد خطأ عند حدوث خطأ أثناء البحث عن الصف القادم.

عارض الصفوف - قراءة خصائص الصف

func (rows *Rows) GetRowOpts() RowOpts

تقوم بإعادة خصائص الصف الحالي مثل ارتفاع الصف، والرؤية، ومعرف نمط الأسلوب.

عارض الصفوف - إغلاق تدفق البيانات

func (rows *Rows) Close() error

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

البحث في ورقة العمل

func (f *File) SearchSheet(sheet, value string, reg ...bool) ([]string, error)

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

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

result, err := f.SearchSheet("Sheet1", "100")

على سبيل المثال، البحث عن إحداثيات القيم الرقمية في النطاق 0-9 في ورقة العمل بالاسم Sheet1:

result, err := f.SearchSheet("Sheet1", "[0-9]", true)

حماية ورقة العمل

func (f *File) ProtectSheet(sheet string, opts *SheetProtectionOptions) error

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

حماية الورقة

err := f.ProtectSheet("Sheet1", &excelize.SheetProtectionOptions{
    AlgorithmName:       "SHA-512",
    Password:            "password",
    SelectLockedCells:   true,
    SelectUnlockedCells: true,
    EditScenarios:       true,
})

SheetProtectionOptions تعرِّف خيارات الإعداد لحماية ورقة العمل.

type SheetProtectionOptions struct {
    AlgorithmName       string
    AutoFilter          bool
    DeleteColumns       bool
    DeleteRows          bool
    EditObjects         bool
    EditScenarios       bool
    FormatCells         bool
    FormatColumns       bool
    FormatRows          bool
    InsertColumns       bool
    InsertHyperlinks    bool
    InsertRows          bool
    Password            string
    PivotTables         bool
    SelectLockedCells   bool
    SelectUnlockedCells bool
    Sort                bool
}

إلغاء حماية ورقة العمل

func (f *File) UnprotectSheet(sheet string, password ...string) error

إلغاء حماية ورقة العمل وفقًا لاسم ورقة العمل المعطى، وتحديد المعامل الاختياري الثاني ككلمة مرور لإلغاء حماية ورقة العمل بالتحقق من كلمة المرور.

حذف العمود

func (f *File) RemoveCol(sheet, col string) error

حذف العمود المحدد وفقًا لاسم ورقة العمل المعطى واسم العمود. على سبيل المثال، حذف العمود C في ورقة العمل بالاسم Sheet1:

err := f.RemoveCol("Sheet1", "C")

يرجى استخدام هذه الطريقة بحذر، حيث أن هذا سيؤثر على جميع التغييرات على الصياغة الأصلية والرسم البياني والمراجع الأخرى في ورقة العمل. إذا تضمنت ورقة العمل أي قيم مرجعية، فإن استخدام هذه الطريقة قد يتسبب في أخطاء الملف عند فتحه بتطبيق Excel بعد الاستخدام. Excelize حالياً تدعم فقط التحديثات الجزئية على القيم المرجعية في ورقة العمل.

حذف الصف

func (f *File) RemoveRow(sheet string, row int) error

حذف الصف المحدد وفقًا لاسم ورقة العمل المعطى ورقم الصف. على سبيل المثال، حذف الصف الثالث في ورقة العمل بالاسم Sheet1:

err := f.RemoveRow("Sheet1", 3)

يرجى استخدام هذه الطريقة بحذر، حيث أن هذا سيؤثر على جميع التغييرات على الصياغة الأصلية والرسم البياني والمراجع الأخرى في ورقة العمل. إذا تضمنت ورقة العمل أي قيم مرجعية، فإن استخدام هذه الطريقة قد يتسبب في أخطاء الملف عند فتحه بتطبيق Excel بعد الاستخدام. Excelize حالياً تدعم فقط التحديثات الجزئية على القيم المرجعية في ورقة العمل.

تعيين القيم حسب العمود

func (f *File) SetSheetCol(sheet, cell string, slice interface{}) error

تعيين القيم حسب العمود وفقًا لاسم ورقة العمل المعطى، والإحداثيات البداية، ومرجع النوع slice. على سبيل المثال، تعيين القيم حسب العمود في العمود B لورقة العمل بالاسم Sheet1، مع خلية B6 كالإحداثية البداية:

err := f.SetSheetCol("Sheet1", "B6", &[]interface{}{"1", nil, 2})

Assign by Row

func (f *File) SetSheetRow(sheet, cell string, slice interface{}) error

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

err := f.SetSheetRow("Sheet1", "B6", &[]interface{}{"1", nil, 2})

Insert Page Break

func (f *File) InsertPageBreak(sheet, cell string) error

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

Remove Page Break

func (f *File) RemovePageBreak(sheet, cell string) error

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

Set Worksheet Dimension

func (f *File) SetSheetDimension(sheet string, rangeRef string) error

يقوم بتعيين أو إزالة منطقة الخلية المستخدمة لورقة العمل استنادًا إلى اسم ورقة العمل المعطى وإحداثيات الخلية أو نطاق إحداثيات الخلية. تشمل الخلايا المستخدمة الخلايا التي تحتوي على صيغ، ومحتوى نصي، وتنسيق الخلية، على سبيل المثال "A1:D5". عندما يكون نطاق إحداثيات الخلية المعطى سلسلة فارغة، فسيتم إزالة منطقة الخلية المستخدمة لورقة العمل.

Get Worksheet Dimension

func (f *File) GetSheetDimension(sheet string) (string, error)

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