مصنف
الخيارات
تحدد الخيارات لقراءة وكتابة جداول البيانات.
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
إلغاء حماية الدفتر، مع تحديد معلمة اختيارية للكلمة السرية للتحقق وإزالة حماية الدفتر.