2009-02-13 10 views
6

Utilizzando VSTO, ho creato una scheda personalizzata nella finestra di progettazione della barra multifunzione e ho aggiunto alcuni gruppi e controlli dei pulsanti. Quando l'utente fa clic su uno dei pulsanti, desidero connettermi a un sito di SharePoint e aprire un documento Word da esso in Word (un'istanza è già aperta). Sono in grado di connettersi al sito di SharePoint già e avere gli URL dei documenti che voglio aprire.Apri file in Word tramite il code code behind

Ma come posso caricare questi documenti in Word? Sono già nel code-behind in Word, quindi come posso indirizzare l'istanza di Word in cui sono e aprire un file lì?

Grazie in anticipo.

risposta

6

Dovresti utilizzare l'API di Word per aprire un documento. Vedi questo link per un riferimento. Potrebbe essere necessario aggiornarlo in base alla versione dell'API che si utilizza.

private void button1_Click(object sender, System.EventArgs e) 
{ 
    // Use the open file dialog to choose a word document 
    if (this.openFileDialog1.ShowDialog() == DialogResult.OK) 
    { 
     // set the file name from the open file dialog 
     object fileName = openFileDialog1.FileName; 
     object readOnly = false; 
     object isVisible = true; 
     // Here is the way to handle parameters you don't care about in .NET 
     object missing = System.Reflection.Missing.Value; 
     // Make word visible, so you can see what's happening 
     WordApp.Visible = true; 
     // Open the document that was chosen by the dialog 
     Word.Document aDoc = WordApp.Documents.Open(ref fileName, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible); 
     // Activate the document so it shows up in front 
     aDoc.Activate(); 
     // Add the copyright text and a line break 
     WordApp.Selection.TypeText("Copyright C# Corner"); 
     WordApp.Selection.TypeParagraph(); 
    } 
} 
+0

Sì, questo è quello che ho lavorato ora. Quindi funziona in qualche modo, ma ho un problema con questo ... si apre in una nuova finestra di Word, non nell'istanza che stavo inizialmente usando. C'è un modo "aggiustare" quello? – Kon

+2

Ho trovato la mia risposta qui: http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/b6fa2787-bf87-4ef2-9c99-9df9f2c0a202/. Ho dovuto usare Globals.ThisAddin.Application.Documents.Open (...) – Kon