איך לטעון גיליון אלקטרוני ב-Go

איך לטעון גיליון אלקטרוני ב-Go

Aspose.Cells FOSS for Go טוען חוברת עבודה קיימת של .xlsx לזיכרון בתור Workbook, ומעניק לך גישה מלאה לגליונות העבודה ולתאים שלה דרך API של הספרייה הסטנדרטית. התקן את המודול עם go get לפני ההתחלה.

מדריך שלב אחר שלב

צעד 1: התקנת החבילה

go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26

אמת את גרסת המודול ב-go.mod שלך לאחר ההתקנה.


צעד 2: ייבוא המחלקות הנדרשות

import (
	cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)

שלב 3: צור ומלא חוברת עבודה לטעינה

דוגמה זו יוצרת תחילה חוברת עבודה כדי שיהיה קובץ .xlsx אמיתי לטעינה — בקוד שלך, החלף את הנתיב לגיליון קיים:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Product")
ws.Cells().Set("B1", "Price")
ws.Cells().Set("A2", "Widget A")
ws.Cells().Set("B2", 12.99)
wb.Save("outputfiles/products.xlsx")

שלב 4: קרא ערכי תאים מהגיליון שהוטען

גש לגיליון הראשון דרך Worksheets[0] וקרא תאים בודדים עם Cells().Get(ref):

wb := cells_foss.NewWorkbook()
wb.Worksheets[0].Cells().Set("B2", 12.99)

ws2 := wb.Worksheets[0]
cell, err := ws2.Cells().Get("B2")
if err != nil {
	fmt.Printf("Error reading cell: %v\n", err)
	return
}
fmt.Printf("Price: %v\n", cell.Value)

שלב 5: רשום את כל התאים הממולאים

השתמש ב-Cells().All() כאשר אתה צריך לעבור על כל תא שהוגדר, במקום לקרוא הפניות ידועות אחת אחת:

wb := cells_foss.NewWorkbook()
ws2 := wb.Worksheets[0]
ws2.Cells().Set("A1", "Product")

allCells := ws2.Cells().All()
for ref, c := range allCells {
	fmt.Printf("%s = %v\n", ref, c.Value)
}

בעיות נפוצות ותיקונים

Get מחזיר שגיאה עבור הפנייה לתא. ההפנייה עדיין לא הוגדרה באוסף. אשר שה-cell נכתב עם Set, או בדוק את המוחזר error במפורש לפני השימוש ב-cell.

הערכים נראים כסוג שגוי. Cell.Value משקף כל סוג שהועבר ל- Set (string, int, float64, וכן הלאה) — בדוק זאת עם type switch אם אתה צריך להסתעף על סוג Go הבסיסי.

חוברת העבודה שהוטענה אינה מכילה נתונים בגיליון הצפוי. אשר שאתה מאנדקס את הרשומה הנכונה ב Worksheets — חוברת עבודה יכולה להכיל יותר משיטף עבודה אחד, והנתונים המבוקשים עשויים לא להיות ב Worksheets[0].

שאלות נפוצות

האם טעינת חוברת עבודה מחייבת שהקובץ המקורי ימשיך להיות קיים בדיסק?

כן — Workbook קורא מהנתיב לקובץ שאתה מספק. שמור על קובץ המקור נגיש למשך זמן הטעינה.

האם אוכל לשנות תא לאחר הטעינה ולשמור את השינויים בחזרה?

כן — Cells().Set פועל על חוברת עבודה טעונה באותו אופן שבו הוא פועל על חוברת שנוצרה זה עתה; קרא ל-Save שוב כדי לכתוב את השינויים שלך.

האם יש דרך למנוע טעינת הקובץ כולו לזיכרון?

כן — השתמש ב-StreamingReader.ProcessRows לקבצים גדולים שבהם אתה רק צריך לקרוא שורות ברצף במקום לטעון את כל חוברת העבודה.

ראה גם

 עברית