مشاركة عبر


كيفية القيام بما يلي: إدراج بيانات في مصنف على خادم

ينطبق على

تنطبق المعلومات الموجودة في هذا الموضوع فقط على أنواع المشاريع وإصدارات Microsoft Office التالية: لمزيد من المعلومات، راجع الميزات المتوفرة بواسطة تطبيقات Office و نوع المشروع.
نوع المشروع

  • مشروعات على مستوى المستند

إصدار Microsoft Office

  • Excel 2007

  • Excel 2010

يمكنك إدراج البيانات في ذاكرة التخزين المؤقت لمصنف Microsoft Office Excel و التى هى جزء من مشروع Office على مستوى المستند دون تشغيل Excel. هذا يجعل من الممكن إدراج بيانات في مصنفات Excel التي تم تخزينها على الخادم .

يجب أن تكون التعليمات البرمجية الخاصة بإدراج البيانات خارج تجميع المشروع الذي يقترن بالمستند الذي تعمل عليه، على سبيل المثال في تطبيق وحدة تحكم (Console) أو تطبيق Windows Forms.

للحصول على إرشادات خطوة بخطوة لاستخدام مثال التعليمات البرمجية في هذا الموضوع ، راجع الإرشادات التفصيلية: إدراج بيانات في مصنف على خادم.

مثال

مثال التعليمة البرمجية التالي يقوم أولاً بإنشاء مثيل من مجموعة بيانات مكتوبة باسم AdventureWorksLTDataSet ثم يقوم بتعبئة الجدول Product في مجموعة البيانات باستخدام محول الجدول. بعد ذلك، تستخدم التعليمات البرمجية الفئة ServerDocument للوصول إلى مثيل من مجموعة البيانات المكتوبة نفسها التي تم تخزينها مؤقتاً في مصنف Excel ، ثم يكتب البيانات من مجموعة البيانات المحلية إلى مجموعة البيانات المخزنة مؤقتاً باستخدام الأسلوب SerializeDataInstance .

Dim productDataSet As New AdventureWorksDataSet.AdventureWorksLTDataSet()
Dim productTableAdapter As _
    New AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter()

Dim workbookPath As String = System.Environment.GetFolderPath( _
    Environment.SpecialFolder.MyDocuments) & _
    "\AdventureWorksReport\bin\Debug\AdventureWorksReport.xlsx"
Dim serverDocument1 As ServerDocument = Nothing

Try
    productTableAdapter.Fill(productDataSet.Product)
    Console.WriteLine("The local dataset is filled.")

    serverDocument1 = New ServerDocument(workbookPath)
    Dim dataHostItem1 As CachedDataHostItem = _
        serverDocument1.CachedData.HostItems("AdventureWorksReport.Sheet1")
    Dim dataItem1 As CachedDataItem = dataHostItem1.CachedData("AdventureWorksLTDataSet")

    ' Initialize the worksheet dataset with the local dataset.
    If dataItem1 IsNot Nothing Then
        dataItem1.SerializeDataInstance(productDataSet)
        serverDocument1.Save()
        Console.WriteLine("The data is saved to the data cache.")
    Else
        Console.WriteLine("The data object is not found in the data cache.")
    End If
Catch ex As System.Data.SqlClient.SqlException
    Console.WriteLine(ex.Message)
Catch ex As System.IO.FileNotFoundException
    Console.WriteLine("The specified workbook does not exist.")
Finally
    If Not (serverDocument1 Is Nothing) Then
        serverDocument1.Close()
    End If
    Console.WriteLine(vbLf & vbLf & "Press Enter to close the application.")
    Console.ReadLine()
End Try
AdventureWorksDataSet.AdventureWorksLTDataSet productDataSet = 
    new AdventureWorksDataSet.AdventureWorksLTDataSet();
AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter productTableAdapter =
    new AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter();

string workbookPath = System.Environment.GetFolderPath(
    Environment.SpecialFolder.MyDocuments) +
    @"\AdventureWorksReport\bin\Debug\AdventureWorksReport.xlsx";
ServerDocument serverDocument1 = null;

try
{
    productTableAdapter.Fill(productDataSet.Product);
    Console.WriteLine("The local dataset is filled.");

    serverDocument1 = new ServerDocument(workbookPath);
    CachedDataHostItem dataHostItem1 =
        serverDocument1.CachedData.HostItems["AdventureWorksReport.Sheet1"];
    CachedDataItem dataItem1 = dataHostItem1.CachedData["adventureWorksLTDataSet"];

    // Initialize the worksheet dataset with the local dataset.
    if (dataItem1 != null)
    {
        dataItem1.SerializeDataInstance(productDataSet);
        serverDocument1.Save();
        Console.WriteLine("The data is saved to the data cache.");
        Console.ReadLine();
    }
    else
    {
        Console.WriteLine("The data object is not found in the data cache.");
    }
}
catch (System.Data.SqlClient.SqlException ex)
{
    Console.WriteLine(ex.Message);
}
catch (System.IO.FileNotFoundException)
{
    Console.WriteLine("The specified workbook does not exist.");
}
finally
{
    if (serverDocument1 != null)
    {
        serverDocument1.Close();
    }

    Console.WriteLine("\n\nPress Enter to close the application.");
    Console.ReadLine();
}

التحويل البرمجي للتعليمات البرمجية

مثال التعليمات البرمجية في هذا الموضوع تم تصميمه للاستخدام في التطبيقات التالية:

  • تطبيق وحدة تحكم الذي يملك حق الوصول إلى مشروع مكتبة الفئة الذي يقوم بتعريف مجموعة بيانات مكتوبة. يتم تشغيل التعليمات البرمجية في تطبيق وحدة التحكم.

  • مصنف Excel الذي هو جزء من تخصيص على مستوى المستند لـ Excel. يحتوي المصنف على مجموعة بيانات مخزنة مؤقتاً تسمى AdventureWorksLTDataSet تحتوي على بعض البيانات.

للحصول على إرشادات خطوة بخطوة حول استخدام التعليمة البرمجية راجع الإرشادات التفصيلية: إدراج بيانات في مصنف على خادم.

راجع أيضًا:

المهام

الإرشادات التفصيلية: إدراج بيانات في مصنف على خادم

كيفية القيام بما يلي: إدراج بيانات في المستندات بدون الكتابة إلى القرص

كيفية القيام بما يلي: استرداد البيانات المخزنة مؤقتاً من مصنف على خادم

كيفية القيام بما يلي: تغيير بيانات مخزنة مؤقـتًا في مصنف على خادم

المبادئ

الوصول إلى البيانات في المستندات على الخادم

DiffGrams (ADO.NET)