پرونده کاری

Options گزینه‌ها را برای خواندن و نوشتن صفحات گسترده تعریف می‌کند.

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

MaxCalcIterations برای تعیین حداکثر تعداد تکرارها هنگام محاسبه فرمول‌ها استفاده می‌شود با مقدار پیش‌فرض صفر.

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 فقط زمانی معتبر است که مقدار پارامتر visible برابر با 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 مشخص کردن اینکه آیا قالب‌بندی شرایطی به صورت خودکار محاسبه می‌شود یا نه، با یک مقدار پیش‌فرض true
Published *bool مشخص کردن اینکه آیا برگه منتشر شده است یا نه، با یک مقدار پیش‌فرض true
AutoPageBreaks *bool مشخص کردن اینکه آیا برگه به صورت خودکار صفحات را شکسته می‌کند یا نه، با یک مقدار پیش‌فرض true
FitToPage *bool مشخص کردن اینکه آیا چاپ مناسب برای صفحه فعال است یا نه، با یک مقدار پیش‌فرض false
TabColorIndexed *int مقدار رنگی شاخص شده برای سازگاری با نسخه‌های قدیمی‌تر
TabColorRGB *string مقدار استاندارد رنگ ARGB
TabColorTheme *int ایندکس رنگ موضوع شروع شده از 0
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

به عنوان مثال، برای مخفی کردن ردیف پیش‌فرض در برگه‌ای به نام 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 باشد، مقدار صفر نمایش داده می‌شود و در غیر این صورت به صورت خالی نمایش داده می‌شود. مقدار پیش‌فرض true است
TopLeftCell *string مشخص می‌کند مختصات سلول بالا و چپ قابل مشاهده را
View *string نمایش نوع کاربرگ را نشان می‌دهد، با مقادیر enum 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

بر اساس نام کارگاه و پارامترهای طرح صفحه داده شده، ویژگی‌های طرح صفحه کارگاه را تنظیم کنید. ویژگی‌های طرح صفحه که در حال حاضر پشتیبانی می‌شود، شامل موارد زیر است:

ویژگی Size برای مشخص کردن اندازه کاغذ صفحه استفاده می‌شود، با اندازه پیش‌فرض طرح صفحه "حروفی 8½ × 11 اینچ". جدول زیر رابطه بین اندازه‌های طرح صفحه و پارامتر فهرست Size در 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 اینچ
... ...
| 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 میلی‌متر |

خصوصیت `Orientation` برای تعیین جهت طراحی صفحه استفاده می‌شود، که جهت طراحی صفحه پیش فرض "عمودی" است و مقادیر اختیاری آن `عمودی` و `افقی` هستند.

خصوصیت `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`,
})

مثال فوق حاوی فرمت‌های زیر است:

  • صفحه اول هدر و فوتر خود را دارد
  • صفحات فرد و زوج هدر و فوترهای متفاوتی دارند
  • بخش راست هدر صفحات فرد شماره صفحه فعلی است
  • بخش مرکزی فوتر صفحات فرد نام فایل کارنامه فعلی است
  • بخش چپ هدر صفحات زوج شماره صفحه فعلی است
  • بخش چپ تاریخ فعلی است و بخش راست فوتر صفحات زوج زمان فعلی است
  • متن در ردیف اول بخش مرکزی صفحه اول "Center Bold Header" است و ردیف دوم تاریخ است
  • برای صفحه اول فوتری وجود ندارد

تنظیم نام

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

بر اساس نام داده شده، نام و محدوده‌ی ارجاع را تنظیم کنید. گستره‌ی پیش‌فرض کاربرگردان کارنامه است. به عنوان مثال:

err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "مقدار",
    RefersTo: "Sheet1!$A$2:$D$5",
    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)
}

گرفتن نام

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

لیستی از نام‌های موجود در کارنامه و صفحه‌ی کار در گستره را بگیرید.

حذف نام

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

بر اساس نام و گستره‌ی داده شده، نام تعریف‌شده را حذف کنید. گستره‌ی پیش‌فرض کارنامه است. به عنوان مثال:

err := f.DeleteDefinedName(&excelize.DefinedName{
    Name:     "مقدار",
    Scope:    "Sheet2",
})

تنظیم خصوصیات برنامه کارنامه

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

خصوصیات برنامه کارنامه را تنظیم کنید. خصوصیات قابل تنظیم شامل موارد زیر می‌شود:

خصوصیت توضیحات
برنامه نام برنامه‌ای که این سند را ایجاد کرده است
ScaleCrop نمایش تصویر کوچک سند را مشخص می‌کند. برای تغییر اندازه تصویر کوچک، 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 8601 ISO نمایش داده می‌شود، به عنوان مثال 2019-06-04T22:00:10Z
ایجادکننده ایجاد کننده سند
توضیحات توضیحات محتوای منبع
هویت ارجاع واضح به منبع در یک زمینه داده شده
کلمات کلیدی کلمات کلیدی سند
زبان زبان اصلی محتوای سند
آخرین ویرایش توسط کاربری که آخرین بار سند را ویرایش کرده‌است
ویرایش‌شده زمانی که سند ویرایش شده‌است، که به فرمت UTC 8601 ISO نمایش داده می‌شود، به عنوان مثال 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

لغو محافظت از کارنامه، با مشخص کردن یک پارامتر گذرواژه اختیاری برای تأیید و برداشتن محافظت از کارنامه.