Condividi tramite


Procedura: inserire dati in una cartella di lavoro sul server

Aggiornamento: novembre 2007

Si applica a

Le informazioni contenute in questo argomento riguardano solo i progetti Visual Studio Tools per Office e le versioni di Microsoft Office specificati.

Tipo di progetto

  • Progetti a livello di documento

Versione Microsoft Office

  • Excel 2007

  • Excel 2003

Per ulteriori informazioni, vedere la classe Funzionalità disponibili in base ai tipi di progetto e applicazione.

È possibile inserire dati nella cache di una cartella di lavoro di Microsoft Office Excel che fa parte di un progetto a livello di documento Visual Studio Tools per Office senza eseguire Excel consentendo in tal modo l'inserimento di dati nelle cartelle di lavoro di Excel memorizzate su un server.

Il codice per l'inserimento dei dati deve trovarsi all'esterno dell'assembly principale del progetto Visual Studio Tools per Office associato al documento che si sta utilizzando, ad esempio in un'applicazione console o Windows Form.

Per ottenere istruzioni dettagliate sull'utilizzo dell'esempio di codice contenuto in questo argomento, vedere Procedura dettagliata: inserimento di dati in una cartella di lavoro di un server.

Esempio

Nell'esempio di codice seguente viene anzitutto creata un'istanza di un dataset tipizzato denominata AdventureWorksLTDataSet. Quindi, dopo aver passato la tabella Product nel dataset tramite un adattatore di tabelle, il codice utilizza la classe ServerDocument per accedere a un'istanza dello stesso dataset tipizzato memorizzata nella cache di una cartella di lavoro di Excel. Infine, mediante il metodo SerializeDataInstance, i dati vengono letti dal dataset locale e quindi scritti nel dataset memorizzato nella cache.

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

Compilazione del codice

L'esempio di codice contenuto in questo argomento è progettato per essere utilizzato in un'applicazione console in grado di accedere a un progetto Libreria di classi che definisce un dataset tipizzato nonché a una cartella di lavoro di Excel appartenente a una personalizzazione a livello di documento per Excel 2003 o Excel 2007. Per istruzioni dettagliate sull'utilizzo del codice, vedere Procedura dettagliata: inserimento di dati in una cartella di lavoro di un server.

Vedere anche

Attività

Procedura dettagliata: inserimento di dati in una cartella di lavoro di un server

Procedura: inserire dati nei documenti senza scriverli sul disco

Procedura: recuperare i dati memorizzati nella cache di una cartella di lavoro di un server

Procedura: modificare i dati memorizzati nella cache di una cartella di lavoro di un server

Concetti

Accesso ai dati dei documenti sul server

DiffGram (ADO.NET)