پرونده کاری
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
لغو محافظت از کارنامه، با مشخص کردن یک پارامتر گذرواژه اختیاری برای تأیید و برداشتن محافظت از کارنامه.