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