برای کار با اسناد Excel XLSX به کتابخانه بروید

API متن‌باز Go که از تولید صفحه‌گسترده Microsoft Excel XLSX، مدیریت کاربرگ‌ها، مدیریت ردیف‌ها و ستون‌ها در کاربرگ‌ها از طریق Go API پشتیبانی می‌کند.

کتابخانه xlsx روشی بسیار سریع و قابل اعتماد برای کار با فایل های Microsoft Excel با استفاده از Go ارائه می دهد. این کتابخانه به آسان کردن خواندن و نوشتن فرمت فایل اکسل XLSX کمک می کند. فرمت فایل XLSX در سال 2007 معرفی شد و از استاندارد Open XML که در سال 2000 توسط مایکروسافت اقتباس شده بود استفاده می کند. این کتابخانه منبع باز است و تحت مجوز BSD-3-Clause در دسترس است.

کتابخانه متن باز xlsx شامل پشتیبانی از چندین ویژگی مهم مربوط به ایجاد و دستکاری اسناد مایکروسافت اکسل مانند ایجاد یک فایل XlSX جدید، باز کردن فایل‌های اکسل موجود، دسترسی به کاربرگ‌های خود، افزودن کاربرگ‌های جدید، مدیریت سطرها و ستون‌ها در داخل یک کاربرگ، اضافه کردن است. سلول‌ها، گرفتن سلول از یک ردیف، قالب‌بندی سلول‌ها، اعمال سبک‌ها در سلول‌ها، پشتیبانی از محدوده‌های نام‌گذاری شده و بسیاری موارد دیگر.

Previous Next

شروع کار با Xlsx2Go

روش توصیه شده برای نصب xlsx از GitHub است، لطفا از دستور زیر برای نصب راحت استفاده کنید.

xlsx را از طریق GitHub نصب کنید

go get https://github.com/tealeg/xlsx.git

ایجاد فایل های XLSX جدید از طریق کتابخانه Go

کتابخانه متن باز xlsx به توسعه دهندگان نرم افزار این قابلیت را می دهد که با استفاده از چند دستور Go یک فایل XLSX خالی جدید از ابتدا ایجاد کنند. توسعه دهندگان می توانند از تابع NewFile() برای تولید یک فایل جدید استفاده کنند. پس از ایجاد آن می توانید به راحتی محتوای جدید را به کتاب کار اضافه کنید. می توانید به راحتی یک برگه جدید اضافه کنید یا یک برگه موجود را اضافه کنید. پس از ایجاد و تکمیل کار، لطفاً کار خود را ذخیره کنید، توصیه می‌شود صفحه را ببندید().

ایجاد و ویرایش فایل اکسل XLSX از طریق Go API

// Demonstrates how to create/open/save XLSX files
func Example_files() {
	// Create a new XLSX file
	xl := xlsx.New()
	// Open the XLSX file using file name
	xl, err := xlsx.Open("./test_files/example_simple.xlsx")
	if err != nil {
		log.Fatal(err)
	}
	defer xl.Close()
	// Open the XLSX file using file handler
	zipFile, err := os.Open("./test_files/example_simple.xlsx")
	if err != nil {
		log.Fatal(err)
	}
	xl, err = xlsx.Open(zipFile)
	if err != nil {
		log.Fatal(err)
	}
	// Update the existing XLSX file
	err = xl.Save()
	if err != nil {
		log.Fatal(err)
	}
	// Save the XLSX file under different name
	err = xl.SaveAs("new_file.xlsx")
	if err != nil {
		log.Fatal(err)
	}
}

دسترسی و خواندن فایل های XLSX

کتابخانه متن باز xlsx مجموعه ای از توابع را ارائه کرده است که به توسعه دهندگان اجازه می دهد به فایل صفحه گسترده XLSX موجود در برنامه های Go خود دسترسی داشته باشند و آنها را بخوانند. شما همچنین می توانید به راحتی به برگه های یک کتاب کار فقط با چند دستور Go دسترسی داشته باشید. توسعه دهندگان همچنین می توانند به راحتی به برگه خاصی که انتخاب می کنند دسترسی داشته باشند.

دسترسی و خواندن فایل اکسل از طریق کتابخانه Go

func Example_access() {
	xl, err := xlsx.Open("./test_files/example_simple.xlsx")
	if err != nil {
		log.Fatal(err)
	}
	defer xl.Close()
	// Get sheet by 0-based index
	sheet := xl.Sheet(0)
	// Get cell by 0-based indexes
	cell := sheet.Cell(13, 27)
	fmt.Println(cell.Value())
	// Get cell by reference
	cell = sheet.CellByRef("N28")
	fmt.Println(cell.Value())
	// Get row by 0-based index
	row := sheet.Row(9)
	fmt.Println(strings.Join(row.Values(), ","))
	// Get cell of row at 0-based col index
	cell = row.Cell(0)
	fmt.Println(cell.Value())
	// Get col by 0-based index
	col := sheet.Col(3)
	fmt.Println(strings.Join(col.Values(), ","))
	// Get cell of col at 0-based row index
	cell = col.Cell(0)
	fmt.Println(cell.Value())
	// Get range by references
	area := sheet.RangeByRef("D10:H13")
	fmt.Println(strings.Join(area.Values(), ","))
}

مدیریت سطرها و ستون ها در کاربرگ ها

سلول ها ستون فقرات یک کاربرگ اکسل هستند. یک کاربرگ از سلول هایی تشکیل شده است که در ردیف ها و ستون ها سازماندهی شده اند. کتابخانه xlsx به توسعه دهندگان نرم افزار طیف وسیعی از ویژگی ها را برای مدیریت سطرها و ستون ها در داخل برنامه هایشان با استفاده از دستورات Go می دهد. از افزودن سطرها و ستون‌های جدید، تکرار ردیف‌ها و ستون‌ها، حذف سطرها و ستون‌های ناخواسته، افزودن سلول‌های جدید به یک ردیف، دریافت مقدار از یک سلول، اعمال قالب‌بندی برای محدوده‌ای از سلول‌ها و بسیاری موارد دیگر پشتیبانی می‌کند.

درج ستون‌ها و ردیف‌ها در کاربرگ اکسل از طریق کتابخانه Go

func Example_insert() {
	xl, err := xlsx.Open("./test_files/example_simple.xlsx")
	if err != nil {
		log.Fatal(err)
	}
	defer xl.Close()
	sheet := xl.Sheet(0)
	fmt.Println(sheet.Dimension())
	fmt.Println(strings.Join(sheet.Col(3).Values(), ","))
	// Insert a new col
	sheet.InsertCol(3)
	fmt.Println(sheet.Dimension())
	fmt.Println(strings.Join(sheet.Col(3).Values(), ","))
	fmt.Println(strings.Join(sheet.Col(4).Values(), ","))
	// Insert a new row
	fmt.Println(strings.Join(sheet.Row(9).Values(), ","))
	sheet.InsertRow(3)
	fmt.Println(sheet.Dimension())
	fmt.Println(strings.Join(sheet.Row(9).Values(), ","))
	fmt.Println(strings.Join(sheet.Row(10).Values(), ","))
}

اعمال سبک ها و قالب بندی

کتابخانه Free library xlsx چندین عملکرد مهم را ارائه کرده است که توسعه دهندگان نرم افزار را قادر می سازد تا قالب بندی و سبک ها را به راحتی در صفحات گسترده خود اعمال کنند. سبک‌ها چیدمان و تزئین سلول‌ها مانند فونت، رنگ، تراز محتوا، اندازه فونت، پر کردن و غیره را فراهم می‌کنند. شما به راحتی می‌توانید با استفاده از چند خط کد، استایل را در محدوده‌ای از سلول‌ها اعمال کنید. شما فقط باید یک بار یک سبک ایجاد کنید و در صورت نیاز دوباره از آن استفاده کنید. همچنین می توانید قالب های شماره و تاریخ را برای سلول ها اعمال کنید.

از طریق کتابخانه Go، سبک‌ها و قالب‌بندی را به فایل اکسل اعمال کنید

gfunc Example_formatting() {
	xl, err := xlsx.Open("./test_files/example_simple.xlsx")
	if err != nil {
		log.Fatal(err)
	}
	defer xl.Close()
	// Create a new format for a bold font with red color and yellow solid background
	redBold := styles.New(
		styles.Font.Bold,
		styles.Font.Color("#ff0000"),
		styles.Fill.Background("#ffff00"),
		styles.Fill.Type(styles.PatternTypeSolid),
	)
	// Add formatting to xlsx
	styleID := xl.AddStyles(redBold)
	sheet := xl.Sheet(0)
	// Set formatting for cell
	sheet.CellByRef("N28").SetStyles(styleID)
	// Set DEFAULT formatting for row. Affects cells not yet allocated in the row.
	// In other words, this style applies to new cells.
	sheet.Row(9).SetStyles(styleID)
	// Set DEFAULT formatting for col. Affects cells not yet allocated in the col.
	// In other words, this style applies to new cells.
	sheet.Col(3).SetStyles(styleID)
	//set formatting for all cells in range
	sheet.RangeByRef("D10:H13").SetStyles(styleID)
}
 فارسی