Vb.net 2008: Excel Iterop, non funziona su altri PC

domenica 08 giugno 2008 - 22.10

619619 Profilo | Newbie

Salve a tutti

Apro questo topic perché ho un problema con la mia applicazione scritta in VB.NET (VS 2008).
L'applicazione implementa l'esportazione di alcuni dati sotto forma di tabella Excel; la cosa funziona benissimo sul mio PC, mentre non funziona su altri (mentre il resto dell'applicazione funziona perfettamente)
Quando chiamo il metodo per la creazione del file excel (ovvero quando creo anche l'oggetto Excel.Application) l'applicazione ritorna un errore di runtime "Impossibile creare il componente Activex"

Sulla mia postazione è installato Office 2007, tra i riferimenti del progetto c'è "Microsoft Excel 12.0 Object Library" (non ci sono altre versioni disponibili), con l'opzione di copia locale attivata.

L'oggetto Excel viene creato con il seguente codice
[...]
Public Class Exwork
Dim ex As Excel.Application
Dim workbook As Excel.Workbook
Dim worksheet As Excel.Worksheet

Public Sub New()
ex = CreateObject("Excel.Application")
workbook = ex.Workbooks.Add
worksheet = workbook.ActiveSheet
End Sub
[...]

Credo che il problema dipenda dall'assenza di Office 2007 nel computer ospite, qualcuno ha qualche idea e/o ha già affrontato il problema?

rossimarko Profilo | Guru

Se crei degli interop verso dei componenti com, ovviamente questi componenti devono essere installati sul pc su cui sta girando il programma, quindi nel tuo caso deve esserci office
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

619619 Profilo | Newbie

Grazie intanto per la celere risposta
Quindi, dovrei installare per forza excel 2007 negli altri pc... e questo è infattibile.

Non c'è un modo per esportare il documento excel senza doversi appoggiare al pacchetto office installato, quindi?
I dati non sono niente di complicato, solamente un sacco di valori da scrivere nelle varie celle, niente funzioni, grafici o altro; Costringere i miei utenti ad installare office per una stupidata del genere sarebbe veramente esagerato.

rossimarko Profilo | Guru

Ciao,

allora ti consiglio di esportare i dati in un file CSV (in internet puoi trovare svariati esempi) oppure prova a guardare questa strada alternativa: http://support.microsoft.com/default.aspx?scid=kb;EN-US;316934

In entrambi i casi non ti serve Excel installato
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

619619 Profilo | Newbie

Grazie, l'esportazione in CSV è anche infinitamente più veloce, meglio così ;)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5