کاربرگ

تنظیم قابلیت دید ستون

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 به ردیف 3:

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 *فایل) SearchSheet(ورکشیت, مقدار 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 *فایل) ProtectSheet(ورکشیت string, opts *گزینه‌های_حفاظت_ورکشیت) error

از سایر کاربران جلوگیری کنید تا به طور تصادفی یا عمدی اطلاعات در ورکشیت را تغییر، جابجایی یا حذف کنند. فیلد اختیاری نام_الگوریتم از الگوریتم های هش 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,
})

گزینه‌های_حفاظت_ورکشیت تنظیمات گزینه‌های تنظیمات برای حفاظت از ورکشیت را تعریف می‌کند.

type گزینه‌های_حفاظت_ورکشیت struct {
    نام_الگوریتم       string
    فیلتر_اتوماتیک      bool
    حذف_ستونها          bool
    حذف_ردیفها         bool
    ویرایش_اشیاء       bool
    سناریوهای_ویرایش   bool
    قالب_سلولها        bool
    قالب_ستونها        bool
    قالب_ردیفها        bool
    درج_ستونها         bool
    درج_پیوندهای_هایپر        bool
    درج_ردیفها          bool
    رمز_عبور            string
    جدولهای_پیوت       bool
    انتخاب_سلولهای_قفل_شده   bool
    انتخاب_سلولهای_غیرقفل_شده   bool
    مرتب_کردن            bool
}

لغو حفاظت از ورکشیت

func (f *فایل) UnprotectSheet(ورکشیت string, password ...string) error

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

حذف_ستون

func (f *فایل) RemoveCol(ورکشیت, ستون string) error

ستون مشخص‌شده را بر اساس نام ورکشیت و نام ستون حذف کنید. به عنوان مثال، ستون C را در ورکشیت با نام Sheet1 حذف کنید:

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

لطفاً از این روش با احتیاط استفاده کنید، زیرا این تغییرات در تمام تغییرات فرمول اصلی، نمودار و ارجاعات منابع دیگر در ورکشیت تأثیر می‌گذارد. اگر ورکشیت شامل هر گونه مقادیر ارجاعی باشد، استفاده از این روش ممکن است باعث ایجاد خطاهای فایل شود هنگام باز شدن با برنامه Excel پس از استفاده. در حال حاضر Excelize فقط از به‌روزرسانی‌های جزئی بر روی مقادیر ارجاعی در ورکشیت پشتیبانی می‌کند.

حذف_ردیف

func (f *فایل) RemoveRow(ورکشیت string, ردیف int) error

ردیف مشخص‌شده را بر اساس نام ورکشیت و شماره ردیف حذف کنید. به عنوان مثال، ردیف سوم را در ورکشیت با نام Sheet1 حذف کنید:

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

لطفاً از این روش با احتیاط استفاده کنید، زیرا این تغییرات در تمام تغییرات فرمول اصلی، نمودار و ارجاعات منابع دیگر در ورکشیت تأثیر می‌گذارد. اگر ورکشیت شامل هر گونه مقادیر ارجاعی باشد، استفاده از این روش ممکن است باعث ایجاد خطاهای فایل شود هنگام باز شدن با برنامه Excel پس از استفاده. در حال حاضر Excelize فقط از به‌روزرسانی‌های جزئی بر روی مقادیر ارجاعی در ورکشیت پشتیبانی می‌کند.

اختصاص مقادیر بر اساس ستون

func (f *فایل) SetSheetCol(ورکشیت, سلول string, slice interface{}) error

مقادیر را بر اساس ستون بر اساس نام ورکشیت، مختصات شروع و مرجع نوع slice اختصاص دهید. به عنوان مثال، مقادیر را بر اساس ستون در ستون B ورکشیت با نام Sheet1، با سلول B6 به عنوان مختصات شروع:

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

اختصاص دادن بر اساس ردیف

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

با استفاده از نام صفحه کار، مختصات شروع و مرجع نوع "برش"، ارزش‌ها بر اساس ردیف‌ها اختصاص داده می‌شوند. این تابع از نظر همزمانی ایمن است. به عنوان مثال، در ردیف 6 صفحه کار با نام "Sheet1"، می‌توان ارزش‌ها را از ردیف‌ها بر اساس سلول "B6" اختصاص داد:

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

درج شکست صفحه

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

بر اساس نام صفحه کار و مختصات سلول داده شده، یک شکست صفحه درج می‌کند. شکست‌های صفحه خطوط تقسیم‌کننده‌ای هستند که برای جداکردن صفحات فردی جدول برای اهداف چاپ استفاده می‌شوند.

حذف شکست صفحه

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

بر اساس نام صفحه کار و مختصات سلول داده شده، یک شکست صفحه را حذف می‌کند.

تنظیم ابعاد صفحه کار

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

بر اساس نام صفحه کار داده شده و مختصات یا محدوده مختصات سلول، ناحیه استفاده شده از صفحه‌کار را تنظیم یا حذف می‌کند. سلول‌های استفاده شده شامل سلول‌هایی با فرمول، محتوای متنی و قالب سلول می‌شوند، به عنوان مثال A1:D5. هنگامی که محدوده مختصات سلول داده شده یک رشته خالی است، ناحیه استفاده شده از صفحه کار را حذف خواهد کرد.

دریافت ابعاد صفحه کار

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

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