Excelize
Open Source Go Library for Spreadsheets
קרא, צור, מיזוג וסנן נתונים ב-Excel XLSX / XLSM / XLTM Spreadsheet Files באמצעות Go API.
Excelize היא ספריית Go טהורה בקוד פתוח המספקת פונקציונליות לקריאה וכתיבה של קבצי גיליונות אלקטרוניים של Microsoft Excel XLSX / XLSM / XLTM. מפתחים יכולים לקרוא ולכתוב מסמכי גיליון אלקטרוני שנוצרו על ידי Microsoft Excel™ 2007 ואילך בתוך היישומים שלהם. הספרייה מאוד ידידותית למשתמש ותומכת בקריאה של קבצי גיליונות אלקטרוניים גדולים. הוא סיפק ממשק API לסטרימינג להפקה או קריאת נתונים מגיליון עבודה עם כמויות אדירות של נתונים.
הספרייה תומכת באופן מלא במספר תכונות חשובות הקשורות למניפולציה ועיבוד של קבצי Excel, כגון קריאה וכתיבה של קובצי Excel, עבודה עם טווחי תאים, ניהול שורות Excel, הוספת הערות, מיזוג תאים, העתקת שורות, עיצוב מותנה, הוספת טקסטים, ניהול טבלאות בקבצי אקסל, הוסף תמונות, הוסף גיליונות חדשים ועוד רבים.
תחילת העבודה עם Excelize
הדרך המומלצת להתקין את Excelize היא מ-GitHub, אנא השתמש בפקודה הבאה להתקנה מהירה יותר.
התקן באמצעות GitHub Command
go get github.com/360EntSecGroup-Skylar/excelize
צור קובץ Excel XLSX באמצעות Go Library
Excelize מאפשר למתכנתים ליצור גיליון אלקטרוני של Excel XLSX בתוך יישומי Go משלהם. לאחר שיצרתם את הגיליון תוכלו גם ליצור גיליון חדש, להגדיר ערך של תא, להגדיר את מספר השורות והעמודות, להגדיר גיליון פעיל של חוברת העבודה ועוד. אתה יכול גם להקצות שם לגיליון ולשמור את הקובץ בנתיב לבחירתך, להגדיר סוג גופן וגודל טקסט עבור גיליון שנוצר.
יצירת קובץ LS Excel באמצעות Go API
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
f := excelize.NewFile()
// Create a new sheet.
index := f.NewSheet("Sheet2")
// Set value of a cell.
f.SetCellValue("Sheet2", "A2", "Hello world.")
f.SetCellValue("Sheet1", "B2", 100)
// Set active sheet of the workbook.
f.SetActiveSheet(index)
// Save spreadsheet by the given path.
if err := f.SaveAs("Book1.xlsx"); err != nil {
fmt.Println(err)
}
}
הכנס תרשים לקובץ XLSX
תרשימי Excel הם ייצוגים חזותיים של נתונים מגיליון עבודה שיכולים להעביר הבנה רבה יותר של הנתונים על ידי סיכום כמויות גדולות של נתונים בתוך חלק קטן של גליון העבודה שלך. תרשימים מאפשרים למשתמשים להציג נתונים ויזואלית בפורמטים שונים כגון סרגל, עמודה, עוגה, קו, שטח או מכ"ם וכו'. ספריית Excelize תומכת ביצירת תרשימים כמו גם בשליטה עם מספר שורות קוד בלבד בתוך היישומים שלך. זה מאפשר בניית תרשימים המבוססים על נתונים בגליון עבודה או יצירת תרשימים ללא כל נתונים.
הוספת תרשים לקובץ Spreadsheet Excel באמצעות Go API
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
categories := map[string]string{
"A2": "Small", "A3": "Normal", "A4": "Large",
"B1": "Apple", "C1": "Orange", "D1": "Pear"}
values := map[string]int{
"B2": 2, "C2": 3, "D2": 3, "B3": 5, "C3": 2, "D3": 4, "B4": 6, "C4": 7, "D4": 8}
f := excelize.NewFile()
for k, v := range categories {
f.SetCellValue("Sheet1", k, v)
}
for k, v := range values {
f.SetCellValue("Sheet1", k, v)
}
if err := f.AddChart("Sheet1", "E1", `{
"type": "col3DClustered",
"series": [
{
"name": "Sheet1!$A$2",
"categories": "Sheet1!$B$1:$D$1",
"values": "Sheet1!$B$2:$D$2"
},
{
"name": "Sheet1!$A$3",
"categories": "Sheet1!$B$1:$D$1",
"values": "Sheet1!$B$3:$D$3"
},
{
"name": "Sheet1!$A$4",
"categories": "Sheet1!$B$1:$D$1",
"values": "Sheet1!$B$4:$D$4"
}],
"title":
{
"name": "Fruit 3D Clustered Column Chart"
}
}`); err != nil {
fmt.Println(err)
return
}
// Save spreadsheet by the given path.
if err := f.SaveAs("Book1.xlsx"); err != nil {
fmt.Println(err)
}
}
יצירת PivotTable בקובץ Excel
Excelize מספקת את היכולת ליצור טבלת ציר בתוך גיליון אלקטרוני של Excel בקלות. טבלאות ציר הן אחת התכונות החזקות ביותר של Microsoft Excel. זהו כלי רב עוצמה לחישוב, לסכם ולנתח את הנתונים שלך בגיליון Excel. אתה יכול ליצור טבלת ציר פשוטה באמצעות הפונקציה AddPivotTable. יתר על כן, אתה יכול בקלות להקצות או לערוך מקור נתונים לטבלת ציר.
יצירת PivotTable בקובץ Excel בתוך Apps
func main() {
f := excelize.NewFile()
// Create some data in a sheet
month := []string{"Jan", "Feb", "Mar", "Apr", "May",
"Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}
year := []int{2017, 2018, 2019}
types := []string{"Meat", "Dairy", "Beverages", "Produce"}
region := []string{"East", "West", "North", "South"}
f.SetSheetRow("Sheet1", "A1", &[]string{"Month", "Year", "Type", "Sales", "Region"})
for row := 2; row < 32; row++ {
f.SetCellValue("Sheet1", fmt.Sprintf("A%d", row), month[rand.Intn(12)])
f.SetCellValue("Sheet1", fmt.Sprintf("B%d", row), year[rand.Intn(3)])
f.SetCellValue("Sheet1", fmt.Sprintf("C%d", row), types[rand.Intn(4)])
f.SetCellValue("Sheet1", fmt.Sprintf("D%d", row), rand.Intn(5000))
f.SetCellValue("Sheet1", fmt.Sprintf("E%d", row), region[rand.Intn(4)])
}
if err := f.AddPivotTable(&excelize.PivotTableOptions{
DataRange: "Sheet1!$A$1:$E$31",
PivotTableRange: "Sheet1!$G$2:$M$34",
Rows: []excelize.PivotTableField{
{Data: "Month", DefaultSubtotal: true}, {Data: "Year"}},
Filter: []excelize.PivotTableField{
{Data: "Region"}},
Columns: []excelize.PivotTableField{
{Data: "Type", DefaultSubtotal: true}},
Data: []excelize.PivotTableField{
{Data: "Sales", Name: "Summarize", Subtotal: "Sum"}},
RowGrandTotals: true,
ColGrandTotals: true,
ShowDrill: true,
ShowRowHeaders: true,
ShowColHeaders: true,
ShowLastColumn: true,
}); err != nil {
fmt.Println(err)
}
if err := f.SaveAs("Book1.xlsx"); err != nil {
fmt.Println(err)
}
}
הוסף תמונות לגיליונות אלקטרוניים של XLSX
ספריית Excelize מספקת פונקציונליות להוספת תמונות לגיליון אלקטרוני של Excel XLSX עם רק כמה שורות של פקודות Go. אתה יכול גם לשנות תמונות בהתאם לצרכים שלך. אתה יכול להכניס תמונה עם קנה מידה כמו גם עם תמיכה בהדפסה.
הוספת תמונה לקובץ גליון עבודה של Excel באמצעות Go API
package main
import (
"fmt"
_ "image/gif"
_ "image/jpeg"
_ "image/png"
"github.com/xuri/excelize/v2"
)
func main() {
f, err := excelize.OpenFile("Book1.xlsx")
if err != nil {
fmt.Println(err)
return
}
defer func() {
// Close the spreadsheet.
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// Insert a picture.
if err := f.AddPicture("Sheet1", "A2", "image.png", ""); err != nil {
fmt.Println(err)
}
// Insert a picture to worksheet with scaling.
if err := f.AddPicture("Sheet1", "D2", "image.jpg",
`{"x_scale": 0.5, "y_scale": 0.5}`); err != nil {
fmt.Println(err)
}
// Insert a picture offset in the cell with printing support.
if err := f.AddPicture("Sheet1", "H2", "image.gif", `{
"x_offset": 15,
"y_offset": 10,
"print_obj": true,
"lock_aspect_ratio": false,
"locked": false
}`); err != nil {
fmt.Println(err)
}
// Save the spreadsheet with the origin path.
if err = f.Save(); err != nil {
fmt.Println(err)
}
}