הכנס DataTable למסמך Word ב-C#

כמפתח .NET, אתה צריך להתמודד עם אובייקטי DataTable לעתים קרובות מאוד. במיוחד כאשר אתה צריך לייבא או לייצא נתונים ממסדי נתונים או קבצי XML/JSON. בעת יצירת מסמכים באופן פרוגרמטי, ייתכן שיהיה עליך להוסיף נתונים מאובייקטי DataTable ישירות לטבלה במסמכי Word. למקרים כאלה, הרשו לי לתת לכם את הפתרון המושלם והקל ביותר להכנסת נתונים מ-DataTable למסמך Word ב-C#.

ספריית C# להכנסת DataTable ב- Word DOC - הורדה חינם

כדי לייבא נתונים מאובייקטי DataTable למסמכי Word, נשתמש ב-Aspose.Words for .NET. זוהי ספרייה עשירה בתכונות המאפשרת לך ליצור ולעבד מסמכי MS Word. אתה יכול להוריד את ה-DLL שלו או להתקין אותו מ-NuGet.

הורד DLL

התקן דרך NuGet

PM> Install-Package Aspose.Words

C# הכנס DataTable למסמך Word - שלבים

להלן השלבים שנבצע כדי לאחזר נתונים מ-DataTable ולהכניס אותם למסמך Word.

  • טען נתונים ממסד נתונים או מקובץ נתונים לאובייקט DataTable.
  • צור מסמך Word חדש והוסף לו טבלה חדשה.
  • עברו בלולאה בין השורות ב-DataTable והוסיפו כל שורה בטבלה של Word.

וזה הכל.

הבה נבחן כעת כיצד להפוך את השלבים הללו לקוד C# ולייבא DataTable למסמך Word.

הכנס נתונים מ-DataTable לתוך Word DOC ב-C#

ראשית, נכתוב שיטה שמקבלת את ה-DocumentBuilder לבניית המסמך, ל-DataTable יש נתונים ופרמטר נוסף להפעלה/השבתה של ייבוא כותרות עמודות. יתר על כן, הוא מחזיר את אובייקט הטבלה.

להלן זרימת העבודה של שיטה זו.

  • צור טבלה חדשה וקבל את ההתייחסות שלה לאובייקט טבלה.
  • הכנס עמודות לטבלה לפי העמודות ב-DataTable.
  • הגדר את משקל הגופן אם השורה הראשונה מיועדת לכותרות.
  • עברו בלולאה בכל DataRow באוסף DataTable.Rows.
  • הכנס תא חדש לכל ערך והגדר את סוג הנתונים בהתאם.
  • החזר את אובייקט הטבלה.

להלן יישום השיטה לייבוא נתונים מ-DataTable לטבלה במסמך Word ב-C#.

///<summary>
/// מייבא את התוכן מה-DataTable שצוין לאובייקט חדש של Aspose.Words Table. 
/// הטבלה מוכנסת במיקום הנוכחי של בונה המסמכים ובאמצעות העיצוב של הבונה הנוכחי אם מוגדר.
///</summary>
public static Table ImportTableFromDataTable(DocumentBuilder builder, DataTable dataTable, bool importColumnHeadings)
{
    Table table = builder.StartTable();

    // בדוק אם יש לכלול את שמות העמודות ממקור הנתונים בשורת כותרת.
    if (importColumnHeadings)
    {
        // אחסן את הערכים המקוריים של מאפיינים אלה לפני שינוים.
        bool boldValue = builder.Font.Bold;
        ParagraphAlignment paragraphAlignmentValue = builder.ParagraphFormat.Alignment;

        // עצב את שורת הכותרת עם המאפיינים המתאימים.
        builder.Font.Bold = true;
        builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;

        // צור שורה חדשה והכנס את השם של כל עמודה לשורה הראשונה של הטבלה.
        foreach (DataColumn column in dataTable.Columns)
        {
            builder.InsertCell();
            builder.Writeln(column.ColumnName);
        }

        builder.EndRow();

        // שחזר את העיצוב המקורי.
        builder.Font.Bold = boldValue;
        builder.ParagraphFormat.Alignment = paragraphAlignmentValue;
    }

    foreach (DataRow dataRow in dataTable.Rows)
    {
        foreach (object item in dataRow.ItemArray)
        {
            // הוסף תא חדש עבור כל אובייקט.
            builder.InsertCell();

            switch (item.GetType().Name)
            {
                case "DateTime":
                    // הגדר פורמט מותאם אישית עבור תאריכים ושעות.
                    DateTime dateTime = (DateTime)item;
                    builder.Write(dateTime.ToString("MMMM d, yyyy"));
                    break;
                default:
                    // כברירת מחדל, כל פריט אחר יוכנס כטקסט.
                    builder.Write(item.ToString());
                    break;
            }

        }

        // לאחר שנכניס את כל הנתונים מהרשומה הנוכחית נוכל לסיים את שורת הטבלה.
        builder.EndRow();
    }

    // סיימנו להכניס את כל הנתונים מה-DataTable, נוכל לסיים את הטבלה.
    builder.EndTable();

    return table;
}

כעת, הגיע הזמן לקרוא לשיטה זו ולהכניס DataTable למסמך Word.

ייבוא DataTable למסמך Word ב-C#

להלן השלבים לייבא נתונים מ-DataTable למסמך Word ב-C#.

  • צור מסמך Word חדש (או טען מסמך קיים) באמצעות המחלקה Document.
  • קרא נתונים ממסד נתונים/קובץ לאובייקט DataTable.
  • קרא לשיטה שכתבנו בסעיף הקודם וקבל את הטבלה המוחזרת.
  • הגדר עיצוב של הטבלה.
  • שמור קובץ Word בשיטת Document.Save().

דוגמת הקוד הבאה מראה כיצד להוסיף DataTable למסמך Word ב-C#.

// צור מסמך חדש.
Document doc = new Document();

// אנו יכולים למקם היכן אנו רוצים שהטבלה תוכנס וגם לציין כל עיצוב נוסף שיהיה
// מיושם גם על השולחן.
DocumentBuilder builder = new DocumentBuilder(doc);

// אנו רוצים לסובב את נוף העמוד כפי שאנו מצפים לטבלה רחבה.
doc.FirstSection.PageSetup.Orientation = Orientation.Landscape;

DataSet ds = new DataSet();
ds.ReadXml("Employees.xml");

// אחזר את הנתונים ממקור הנתונים שלנו המאוחסן כ-DataTable.
DataTable dataTable = ds.Tables[0];

// בנו טבלה במסמך מהנתונים הכלולים ב-DataTable.
Table table = ImportTableFromDataTable(builder, dataTable, true);

// אנו יכולים ליישם סגנון טבלה כדרך מהירה מאוד להחיל עיצוב על הטבלה כולה.
table.StyleIdentifier = StyleIdentifier.MediumList2Accent1;
table.StyleOptions = TableStyleOptions.FirstRow | TableStyleOptions.RowBands | TableStyleOptions.LastColumn;

// עבור הטבלה שלנו אנו רוצים להסיר את הכותרת של עמודת התמונה.
table.FirstRow.LastCell.RemoveAllChildren();

// שמור את מסמך הפלט.
doc.Save("Table.docx");

C# DataTable לספריית יבואן Word - קבל רישיון חינם

אתה יכול לקבל [רישיון זמני] בחינם6 לשימוש ב-Aspose.Words עבור .NET ללא מגבלות הערכה.

סיכום

במאמר זה, למדת כיצד להוסיף נתונים מ-DataTable למסמך Word ב-C#. אתה יכול בקלות לשלב את דוגמת הקוד באפליקציות שלך ולייבא נתונים ישירות ממסד נתונים/XML/JSON למסמכי Word באמצעות DataTable.

ספריית .NET Word - קרא עוד

אתה יכול לבקר בתיעוד של Aspose.Words for .NET כדי לחקור עוד על הספרייה. למקרה שיש לך שאלות כלשהן, אל תהסס ליידע אותנו דרך הפורום שלנו.

ראה גם