Aracılığıyla paylaş


Nasıl Yapılır: Sunucudaki bir Çalışma Kitabına Veri Girme

Excel'i çalıştırmadan, belge düzeyi Office projesinin bir parçası olan Microsoft Office Excel çalışma kitabının önbelleğine veri ekleyebilirsiniz. Bu, sunucuda depolanan Excel çalışma kitaplarına verinin eklenbilmesine olanak tanır.

Uygulama alanı: Bu konudaki bilgiler Excel 2007 ve Excel 2010 uygulamalarının belge düzeyi projelerine yöneliktir. Daha fazla bilgi için bkz. Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.

Veriyi ekleyecek kod, çalıştığınız belgeyle (örn. bir Konsol veya Windows Forms uygulamasıyla) ilişkilendirilen proje derlemesinin dışında olmalıdır.

Bu konu hakkındaki kod örneğini kullanmak amacıyla adım adım yönergeler için bkz. İzlenecek Yol: Bir sunucu üzerindeki bir çalışma kitabına veri ekleme.

Örnek

Aşağıdaki kod örneğinde, ilk başta AdventureWorksLTDataSet isimli türü belirtilmiş veri kümesinin bir örneği oluşturulur ve ardından veri kümesindeki Product tablosu bir tablo bağdaştırıcısı kullanılarak doldurulur. Sonra kodda, Excel çalışma kitabında önbelleğe alınmış, türü belirlenmiş aynı veri kümesinin örneğine erişmek için ServerDocument sınıfı kullanılır ve ardından SerializeDataInstance yöntemi kullanılarak yerel veri kümesindeki veri, önbelleğe alınmış veri kümesine yazılır.

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();
}

Kodu Derleme

Bu konudaki kod örneği, aşağıdaki uygulamalarla kullanılmak üzere tasarlanmıştır.

  • Türü belirlenmiş veri kümesini tanımlayan sınıf kitaplığı projesine erişimi olan konsol uygulaması. Kod, konsol uygulamasında çalışır.

  • Excel belge düzeyi özelleştirmesinin bir parçası olan Excel çalışma kitabı. Çalışma kitabı, aynı veriyi içeren, AdventureWorksLTDataSet isimli önbelleğe alınmış bir veri kümesine sahiptir.

Kodu kullanmak üzere adım adım yönergeler için bkz. İzlenecek Yol: Bir sunucu üzerindeki bir çalışma kitabına veri ekleme.

Ayrıca bkz.

Görevler

İzlenecek Yol: Bir sunucu üzerindeki bir çalışma kitabına veri ekleme

Nasıl Yapılır: Verileri Diske Yazmadan Belgelere Ekleme

Nasıl Yapılır: Sunucudaki Çalışma Kitabından Önbelleğe Alınmış Verileri Alma

Nasıl Yapılır: Sunucu Üzerindeki Çalışma Kitabında Önbellekteki Veriyi Değiştirme

Kavramlar

Sunucu Üzerindeki Belgelerin İçerisindeki Verilere Erişim

DiffGrams (ADO.NET)