Procedura: inserire dati nei documenti senza scriverli sul disco
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
Versione Microsoft Office
Per ulteriori informazioni, vedere la classe Funzionalità disponibili in base ai tipi di progetto e applicazione. |
È possibile inserire dati memorizzati in un documento di soluzione Visual Studio Tools per 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.
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 sono necessari i seguenti requisiti:
Un progetto ASP.NET contenente il codice di esempio.
Un documento di Microsoft Office Word denominato WordApplication3.doc dotato di una cache di dati e situato nella cartella C:\Documenti.
Impostazione del progetto ASP.NET
Il progetto ASP.NET deve avere un riferimento a uno degli assembly seguenti:
Per Word 2007, aggiungere un riferimento a Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll.
Per Word 2003, aggiungere un riferimento a Microsoft.VisualStudio.Tools.Applications.Runtime.dll.
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 uno degli spazi dei nomi seguenti:
Per Word 2007, aggiungere un'istruzione Imports o un'istruzione using per lo spazio dei nomi Microsoft.VisualStudio.Tools.Applications.
Per Word 2003, aggiungere un'istruzione Imports o un'istruzione using per lo spazio dei nomi Microsoft.VisualStudio.Tools.Applications.Runtime.
Nota:
Visual Studio Tools per Office include diverse versioni della classe ServerDocument e delle classi dei dati memorizzati nella cache per Office System 2007 e 2003. Per ulteriori informazioni, vedere Gestione dei documenti di un server utilizzando la classe ServerDocument.
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