Recentemente mi è capitato di dovere aprire un documento di Microsoft Word da una form, pertanto mi sono impegnato a cercare informazioni su come eseguire questa cosa. Cercando in rete ho trovato alcune soluzioni già pronte ed ho pensato di appuntarle e di riunirle in questa pagina.
NON SI TRATTA DI LAVORI ESEGUITI DAL SOTTOSCRITTO.
Metodo 1: utilizzo del componente WebBrowser.
Avviate un nuovo progetto e nella form inserite i seguenti componenti: Button, OpenFileDialog e WebBrowser, quindi digitate il codice seguente.
Public Class Form1 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load Button1.Text = "Browse" With OpenFileDialog1 .Filter = "Office Documents " & "(*.doc, *.xls)|*.doc;*.xls" .FilterIndex = 1 End With End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim strFileName As String If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then strFileName = OpenFileDialog1.FileName WebBrowser1.Navigate(strFileName) End If End Sub End Class
Questo metodo funziona se nel proprio PC è installato il pacchetto Office, o comunque, il programma necessario a visualizzare il file scelto. La cosa interessante è che all'interno del componente WebBrowser viene visualizzata l'applicazione adatta a editare il file caricato; cioè se l'utente vuole aprire un file di Word, nel componente WebBrowser viene aperto MS Word con il documento selezionato in bella mostra.
Modificando o escludendo la proprietà Filter si possono aprire molti altri tipi di files: PDF,JPEG...
Metodo 2: utilizzo delle librerie "Microsoft Office xx.0 Object Library".
È necessario avere installato nel proprio editor di Visual Basic 2008 la libreria sopra citata: Microsoft Office 11.0 Object Library" ed aggiungerla come riferimento al progetto.
Per chi non avesse questo componente installato può reperirlo a questo indirizzo:
Office 2003 Update: Redistributable Primary Interop Assemblies
Avviate un nuovo progetto, e come nel precedente, inserite un Button e la finestra di dialogo OpenFileDialog, quindi digitate il seguente codice:
Imports Microsoft.Office.Interop Public Class Form1 Dim documentoWor d As New Word.Application Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Button1.Text = "Apri documento" OpenFileDialog1.Filter = "(*.doc)|*.doc" End Sub Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim nomeFile As String = Nothing If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then nomeFile = OpenFileDialog1.FileName documentoWord.Documents.Open(nomeFile) documentoWord.Visible = True End If End Sub End Class
Con questo secondo metodo, l'apertura del file .doc avviene in MS Word stesso e non in un componente di Visual Basic 2008; l'editor di testi di casa Microsoft viene avviato da codice passandogli il nome del file da visualizzare e il tutto accade al di fuori della form della nostra applicazione Visual Basic.