إدراج 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 الذي يحتوي على بيانات ، ومعلمة إضافية لتمكين / تعطيل استيراد عناوين الأعمدة. علاوة على ذلك ، تقوم بإرجاع كائن الجدول.

فيما يلي سير عمل هذه الطريقة.

  • قم بإنشاء جدول جديد واحصل على مرجعه في كائن Table.
  • أدخل الأعمدة في الجدول وفقًا للأعمدة الموجودة في DataTable.
  • عيّن وزن الخط إذا كان الصف الأول للعناوين.
  • حلقة خلال كل DataRow في مجموعة DataTable.Rows.
  • أدخل خلية جديدة لكل قيمة وقم بتعيين نوع البيانات وفقًا لذلك.
  • قم بإرجاع كائن الجدول.

ما يلي هو تنفيذ طريقة استيراد البيانات من DataTable إلى جدول في مستند Word في C#.

///<summary>
/// يستورد المحتوى من DataTable المحدد إلى كائن جدول Aspose.Words جديد. 
/// يتم إدراج الجدول في الموضع الحالي لمنشئ المستندات واستخدام تنسيق المنشئ الحالي إن وجد.
///</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 جديد (أو قم بتحميل مستند موجود) باستخدام فئة المستند.
  • قراءة البيانات من قاعدة البيانات / الملف في كائن 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 = 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 to Word Importer Library - احصل على ترخيص مجاني

يمكنك الحصول على ترخيص مؤقت مجاني لاستخدام Aspose.Words لـ .NET بدون قيود تقييم.

استنتاج

في هذه المقالة ، تعلمت كيفية إدراج البيانات من DataTable في مستند Word في C#. يمكنك بسهولة دمج نموذج التعليمات البرمجية في تطبيقاتك واستيراد البيانات مباشرةً من قاعدة البيانات / XML / JSON في مستندات Word باستخدام DataTable.

.NET Word Library - قراءة المزيد

يمكنك زيارة توثيق Aspose.Words for .NET لاستكشاف المزيد حول المكتبة. في حال كان لديك أي أسئلة ، لا تتردد في إخبارنا عبر المنتدى.

أنظر أيضا