2009-02-13 14 views
6

Utilizando VSTO, he creado una pestaña personalizada en el diseñador de Cinta y he añadido algunos grupos y controles de botón allí. Cuando el usuario hace clic en uno de los botones, me gustaría conectarme a un sitio de SharePoint y abrir un documento de Word en Word (una instancia ya está abierta). Ya puedo conectarme al sitio de SharePoint y tener las URL de los documentos que quiero abrir.Abrir archivos en Word a través de código de cinta detrás de

Pero, ¿cómo puedo cargar estos documentos en Word? Ya estoy en el código subyacente en Word, entonces, ¿cómo puedo orientarme a la instancia de Word en la que estoy y abrir un archivo allí?

Gracias de antemano.

Respuesta

6

Tendría que usar la API de Word para abrir un documento. Consulte esto link para una referencia. Puede que tenga que actualizarlo según la versión de API que use.

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í, eso es lo que tengo trabajando ahora. Entonces funciona, pero tengo un problema con esto ... se abre en una nueva ventana de Word, no en la instancia que estaba usando inicialmente. ¿Hay alguna manera de 'arreglar' eso? – Kon

+2

Encontré mi respuesta aquí: http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/b6fa2787-bf87-4ef2-9c99-9df9f2c0a202/. Tuve que usar Globals.ThisAddin.Application.Documents.Open (...) – Kon

Cuestiones relacionadas