2010-01-14 22 views
43

sono abbastanza confuso con quello che sono gli strumenti necessari per VSTO Develpment. Nello specifico voglio manipolare i documenti Excel 2003/2007 a livello di codice. Ho fatto un bel po 'di VBA prima, se vuoi riferirti a una risposta.Beginning VSTO per lo sviluppo

Poche domande che ho su VSTO:

  1. Posso utilizzare Visual Studio 2008 Express Edition C#/C++ per questo?
  2. È necessario che .NET Framework sia installato?
  3. funziona il programma di VSTO conseguente bisogno di avere una copia di Office installata nello stesso sistema per l'esecuzione?

I collegamenti diretti agli strumenti/plug-in/IDE pertinenti saranno apprezzati.

Nota: Sono totalmente nuovo per VSTO e .NET, ma un utente di potere Office. Ho esperienza con la programmazione COM.

risposta

62

Sì, si può diventare confuso, soprattutto in considerazione le convenzioni di denominazione-livello di esclusione, ecc In sostanza, è necessario:

  • versione completa (non esprime) di Visual Studio e la versione .NET a cui stai mirando.
  • Uno dei tempi di esecuzione VSTO (VSTO 2003, VSTO 2005, VSTO 2005 SE, VSTO 2008, VSTO 2010). Per quello che stai chiedendo, VSTO 2005 SE è probabilmente la soluzione migliore.
  • Quando distribuire la vostra applicazione, avrete bisogno di più , come i PIA e la versione di .NET che hai mirato. Per VSTO 2010, non hai bisogno dei PIA (solo quello che stai usando verrà automaticamente incluso nella tua app).

Un paio di consigli:

  • va dalla VBE all'interno di Office per VSTO dovrebbe essere una mossa liscia-ish se hai utilizzato .NET per molto misura.
  • Le versioni VSTO degli oggetti modelli per un determinato programma (Excel, PowerPoint , etc.) ci possono essere alcuni più modi di fare le cose che sono diverso/meglio che nella versione VBA dell'oggetto modello. Ad esempio, il controllo segnalibro per Word in VSTO 2008 non è lo stesso di quello che è nativo di uno accessibile tramite VBA.
  • La distribuzione della tua app può essere un problema. Questa è la ragione per cui VSTO per Visual Studio 2010 non richiede che l'utente sia per includere i file dell'interop (PIA) completi con il pacchetto.
  • azioni specifiche verso diverse versioni di di Office con la stessa soluzione non è ufficialmente supportato per la pre-VSTO 2010. Ci sono modi risolvere questo problema che alcune persone hanno parlato, ma non sarà possibile ottenere molto sostegno da parte MSFT su di essa.

ci sono alcuni siti che si dovrebbe dare un'occhiata a:

Infine, per salvare il meglio per ultimo, questo è il libro che ho letto quando ero appena agli inizi ed è stato molto utile: VSTO for Mere Mortals(TM): A VBA Developer's Guide to Microsoft Office Development Using Visual Studio 2005 Tools for Office

+0

Wow, risposta killer. +1 –

+0

sì .. grazie per aver dedicato del tempo per spiegare in dettaglio. Sono un po 'triste sapere che io non so lavorare. – idazuwaika

+0

ottima risposta Mr Otaku (come sempre) –

4

è una componente foglio di calcolo compatibile con Excel per NET che funzionerà con Visual Studio Express Edition, richiede .NET 2.0 o superiore, non richiede Office o Excel per essere installato, e fa la distribuzione royalty free permesso ad un numero illimitato di client e/o server.

È possibile visualizzare campioni dal vivo here e scaricare la versione di prova gratuita here.

Disclaimer: possiedo SpreadsheetGear LLC

+0

fogli di calcolo per .net è grande. SO è così bello - possiamo vedere le persone che pubblicano qui che stanno facendo un lavoro davvero eccezionale. finora ho visto joel, jesse liberty e ora tu! –

0

È possibile creare eccellere con Express Edition utilizza questo Excel .NET component. Non richiede l'automazione VSTO, ADO o MS Excel.

Il componente Excel Jetcell .NET consente di leggere il foglio di calcolo Excel. Qui puoi trovare molti Excel VB.NET and C# examples. Ad esempio, vedere il codice VB.NET per creare un foglio di calcolo Excel dall'array:

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")