מערכת זו מקבלת קובץ CSV עם רשימת משתמשים וציוניהם, מחשבת ציון סופי לכל משתמש, ומייצרת מסמכים מותאמים אישית (PDF) על בסיס תבנית Word אחת בלבד.
התבנית מיועדת לעריכה על ידי משתמשים שאינם מתכנתים, כך שניתן לשנות עיצוב, טקסט קבוע וכותרות בלי לגעת בקוד.
-
קובץ CSV (
Data.csv) עם העמודות הבאות:- FirstName
- LastName
- Department
- Theoretical
- Practical
-
תבנית Word אחת (
Template.docx) עם placeholders:<FirstName>- שם פרטי<LastName>- שם משפחה<FinalGrade>- הציון הסופי<ConditionalMessage>- הודעה מותאמת לציון (למשל "Congratulations" או "You passed")
-
קריאת CSV:
- הקוד קורא את כל השורות ומסנן שורות ריקות.
- מבצע בדיקה שכל השדות הנדרשים קיימים.
-
חישוב הציון הסופי:
- הציון הסופי מחושב לפי משקל:
FinalGrade = Theoretical * 0.4 + Practical * 0.6
- הציון הסופי מחושב לפי משקל:
-
סינון ציונים:
- ציונים מתחת ל-70 → המשתמש נדחה ולא נוצר לו מסמך.
- ציונים 70 ומעלה → המשתמש ממשיך לעיבוד במסמך PDF.
- הקוד טוען את תבנית Word אחת לכל המשתמשים.
- ממלא את ה-placeholders עם הערכים מה-CSV.
- ממיר כל מסמך ל-PDF ושומר בתיקיית
PDFsבשם:FirstName_LastName.pdf - השדה
<ConditionalMessage>מתמלא לפי הציון:
- 70–90 → הודעה מותאמת (למשל "You passed")
- מעל 90 → הודעה מותאמת אחרת (למשל "Congratulations!")
- בדיקה שכל השדות בקלט קיימים ולא ריקים.
- בדיקה שהציונים ניתנים להמרה למספרים חוקיים.
- טיפול בשגיאות בעת יצירת PDF מבלי לעצור את כל התהליך.
- שמירת לוג או רשימה של שורות שלא עובדו עקב נתונים לא חוקיים.
- בדיקה שה-template קיימת לפני השימוש.
- שמירה זמנית של הקובץ לפני ההמרה ל-PDF כדי למנוע מחיקה של קבצים שלא נוצרו בהצלחה.
- מניעת כפילות שמות קבצים על ידי שימוש בשם
FirstName_LastName.
- NuGet package:
DocX(לקריאת תבניות Word והחלפת placeholders) - Microsoft Office (ליצירת PDF דרך Word Interop)
- תיקיית תבניות:
Templates - תיקיית פלט:
PDFs
- שמור את קובץ ה-CSV בתיקייה של הפרויקט.
- הכנס את התבנית Word בתיקיית
Templates. - הרץ את הקוד – המערכת תיצור:
Output_Data.csv– כל המשתמשים עם הציון הסופי- PDF לכל משתמש בתיקיית
PDFsעם תוכן מותאם אישית - הודעה מותאמת לפי הציון (70–90 / מעל 90) בתוך המסמך