Procedura: inserire dati nei documenti senza scriverli sul disco

È possibile inserire dati memorizzati in un documento di soluzione Office; in questo modo i dati non vengono scritti sul disco rigido. Se si desidera inviare un documento a un utente sotto forma di matrice di byte mediante il protocollo HTTP, è possibile utilizzare questa funzionalità per modificare i dati direttamente nella matrice di byte anziché creare un file temporaneo in cui modificarli.

Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di documento per Word 2007 e Word 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.

Per inserire dati in un documento

  1. Caricare il documento in memoria come matrice di bit.

    Dim name As String = "C:\Documents\WordApplication3.doc"
    Dim fileStream As System.IO.FileStream = Nothing
    Dim bytes() As Byte = Nothing
    
    Try
        fileStream = New System.IO.FileStream( _
            name, System.IO.FileMode.Open, System.IO.FileAccess.Read)
        ReDim bytes(fileStream.Length)
        fileStream.Read(bytes, 0, fileStream.Length)
    
    Finally
        If Not fileStream Is Nothing Then
            fileStream.Close()
        End If
    End Try
    
    string name = @"C:\Documents\WordApplication3.doc";
    System.IO.FileStream fileStream = null;
    byte[] bytes = null;
    
    try
    {
        fileStream = new System.IO.FileStream(
            name, System.IO.FileMode.Open, System.IO.FileAccess.Read);
        bytes = new byte[(int)fileStream.Length];
        fileStream.Read(bytes, 0, (int)fileStream.Length);
    }
    finally
    {
        if (fileStream != null)
        {
            fileStream.Close();
        }
    }
    
  2. Passare la matrice di bit invece del nome file al modello a oggetti del lato server, quindi eseguire la modifica dei dati.

    Dim sd1 As ServerDocument = Nothing
    Try
        sd1 = New ServerDocument(bytes, name)
    
        ' Your data manipulation code goes here. 
    
        sd1.Save()
    
    ServerDocument sd1 = null;
    try
    {
        sd1 = new ServerDocument(bytes, name);
    
        // Your data manipulation code goes here. 
    
        sd1.Save();
    
  3. Inviare il documento all'utente finale e chiudere l'oggetto ServerDocument.

        ' If you have a Word document, use the MIME string:
        Response.ContentType = "application/msword"
    
        ' If you have an Excel workbook, use the MIME string:
        'Response.ContentType = "application/vnd.ms-excel"
    
        Response.AddHeader("Content-disposition", "filename=" + name)
        Response.BinaryWrite(sd1.Document)
    
    Finally
        If Not sd1 Is Nothing Then
            sd1.Close()
        End If
    End Try
    
        // If you have a Word document, use the MIME string:
        Response.ContentType = "application/msword";
    
        // If you have an Excel workbook, use the MIME string:
        //Response.ContentType = "application/vnd.ms-excel";
    
        Response.AddHeader("Content-disposition", "filename=" + name);
        Response.BinaryWrite(sd1.Document);
    }
    finally
    {
        if (sd1 != null)
        {
            sd1.Close();
        }
    }
    

Compilazione del codice

Per questo esempio occorre fornire quanto segue:

  • Un progetto ASP.NET contenente il codice di esempio. Il progetto deve disporre della configurazione seguente:

    • È necessario disporre di un riferimento all'assembly Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll (se il progetto è destinato a .NET Framework 4) o Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll (se il progetto è destinato a .NET Framework 3.5).

    • Il file di codice nel quale si copia l'esempio di codice deve avere un'istruzione Imports in Visual Basic o un'istruzione using in Visual C# per lo spazio dei nomi Microsoft.VisualStudio.Tools.Applications.

  • Un documento di Microsoft Office Word denominato WordApplication3.doc dotato di una cache di dati e situato nella cartella C:\Documenti.

Vedere anche

Attività

Procedura: inserire dati in una cartella di lavoro sul server

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