2010-01-14 30 views
43

Estoy bastante confundido con las herramientas necesarias para el desarrollo de VSTO. Específicamente, quiero manipular los documentos de Excel 2003/2007 mediante programación. Hice un montón de VBA antes, si desea relacionar alguna respuesta a eso.Principiante VSTO Development

Pocas preguntas que tengo sobre VSTO:

  1. ¿Puedo utilizar Visual Studio 2008 Express Edition C#/C++ para esto?
  2. ¿Necesito tener .NET Framework instalado?
  3. ¿El programa VSTO resultante necesita tener una copia de Office instalada en el mismo sistema para ejecutarse?

Se apreciarán los enlaces directos a las herramientas/plugins/IDE pertinentes.

Nota: Soy totalmente nuevo en VSTO y .NET, pero soy un usuario avanzado de Office. Tengo experiencia con la programación COM.

Respuesta

62

Sí, puede ser confuso, especialmente teniendo en cuenta las convenciones de nombres de nivel de salto, etc. Esencialmente, usted necesitará:

  • versión completa (no expresa) de Visual Studio y la versión de .NET a la que se dirige.
  • Uno de los tiempos de ejecución de VSTO (VSTO 2003, VSTO 2005, VSTO 2005 SE, VSTO 2008, VSTO 2010). Para lo que pregunta, VSTO 2005 SE es probablemente su mejor opción.
  • Al distribuir su aplicación, necesitará más, como los PIA y la versión de .NET a los que se ha dirigido. Para VSTO 2010, no necesita los PIA (lo que está utilizando se empaqueta con su aplicación automáticamente).

Un par de consejos:

  • que va desde el interior de VBE Oficina a VSTO debe ser un movimiento suave-ish si usted ha utilizado mucho para .NET medida.
  • Las versiones VSTO de los modelos de objetos para un programa dado (Excel, PowerPoint , etc.) no pueden ser unos más formas de hacer las cosas que son diferente/mejor que en la versión de VBA del objeto modelo. Para el ejemplo , el control de marcador para Word en VSTO 2008 no es lo mismo que que es nativo de un al que se accede a través de VBA.
  • Distribuir su aplicación puede ser una molestia. Esta es la razón por la que VSTO para Visual Studio 2010 no requiere para incluir los archivos de interoperabilidad (PIA) completos con su paquete.
  • que apuntan a diferentes versiones de Oficina con la misma solución no es apoyo oficial para la pre-VSTO 2010. Hay maneras en torno a este tema que algunas personas han hablado, pero no se va a mucho apoyo de MSFT en eso.

Hay algunos sitios que usted debe echar un vistazo a:

Por último, para guardar el mejor para el final, este es el libro que leí cuando estaba empezando y fue muy útil: VSTO for Mere Mortals(TM): A VBA Developer's Guide to Microsoft Office Development Using Visual Studio 2005 Tools for Office

+0

Guau, respuesta asesina. +1 –

+0

sí ... gracias por tomarse el tiempo para explicar en detalle. estoy un poco triste por saber que no puedo expresar el trabajo. – idazuwaika

+0

gran respuesta Sr. Otaku (como siempre) –

4

es un componente de hoja de cálculo compatible con Excel para .NET que funcionará con las ediciones de Visual Studio Express, requiere .NET 2.0 o superior, no requiere Office o Excel para instalarse y permite la distribución libre de regalías a un número ilimitado de las computadoras cliente y/o servidor.

Puede ver muestras en vivo here y descargar la versión de prueba gratuita here.

responsabilidad: Soy dueño de SpreadsheetGear LLC

+0

hoja de cálculo para .net es excelente. SO es genial - vemos gente publicando aquí que están haciendo un gran trabajo. hasta ahora he visto a joel, a Jesse Liberty y ahora a ti! –

0

Puede crear sobresalir con Express Edition utiliza este Excel .NET component. No requiere automatización VSTO, ADO o MS Excel.

Excel El componente Jetcell .NET permite leer la hoja de cálculo de Excel. Aquí puede encontrar muchos Excel VB.NET and C# examples. Por ejemplo, vea el código de VB.NET para crear hojas de cálculo de Excel desde una matriz:

Imports DTG.Spreadsheet 
... 
Dim WBook = New ExcelWorkbook() 
WBook.Worksheets.Add("ArrayValues") 
For i As Short = 0 To 10 
    For j As Short = 0 To 10 
     WBook.Worksheets(0).Cells[i,j].Value = arr(i,j) 
     j = j + 1 
    Next j 
    i = i + 1 
Next i 
WBook.WriteXLSX("ExcelSpreadsheet.xlsx")