Gestire Excel da ASP .NET

mercoledì 18 giugno 2003 - 12.00

motodriver2002 Profilo | Newbie

Salve a tutti,
Ho un file Excel che devo riempire con dei dati utilizzando Excel.Application ma non ci riesco.
Il codice che ho scritto è il seguente:

[HO AGGIUNTO LA REFERENCE MICROSOFT EXCEL]

Dim xl As New Excel.Application()
Dim xlSheet As New Excel.Worksheet()
xl.Application.Workbooks.Open("FILE.XLS")
xlSheet = xl.Application.Worksheets(1)
xlSheet.Cells.Item(1, 1).VALUE = "PROVA SCRITTURA"
xlSheet.SaveAs("FILE.XLS")
xl.Application.Workbooks.Close()
xlSheet = Nothing
xl = Nothing

Dovè l'errore?

Grazie a tutti!!!

Brainkiller Profilo | Guru

Ciao e Benvenuto,
ma tu stai utilizzando i PIA (Primary Interop Assemblies) ?
Ho fatto in fretta un pezzo in C# e funziona alla perfezione, dovresti in pochi minuti trasformarlo in VB.NET:

object oMissing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.ApplicationClass xl=new Microsoft.Office.Interop.Excel.ApplicationClass();
Microsoft.Office.Interop.Excel.Workbook xlBook;
Microsoft.Office.Interop.Excel.Worksheet xlSheet;
xlBook = (Workbook)xl.Workbooks.Open(@"C:\prova.xls",oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing);
xlSheet = (Worksheet)xlBook.Worksheets.get_Item(1);
xlSheet.Cells[1,1]="CIAO";
xlBook.Save();
xl.Application.Workbooks.Close();

Fammi sapere se ti funziona e se hai altri eventuali dubbi su PIAs o simili.
Ciao

David De Giacomi

MrDuke Profilo | Newbie

Ciao a tutti... mi sono appena iscritto...
avrei un problema pure io con excel, il codice che ha scritto Brain funziona bene, ma dopo aver caricato il foglio excel, come faccio a mostrarlo nel browser ???

Sono tre giorni che cerco disperatamente una soluzione....

Grazie

MrDuke Profilo | Newbie

Mi spiego meglio:
Io avrei bisogno di aprire un file excel che risiede su un server web, mostrarlo sul browser, dare la possibilità di modificarlo, ed alla fine salvarlo sempre sul server da cui l'ho preso.

Sembra tutto molto semplice, ma è un problema non riesco a risolvere !!!!
Aiutatemi !!!

Brainkiller Profilo | Guru

Ciao e Benvenuto,
la cosa non è così semplice.
Quando navighi su un foglio di Excel di solito dovrebbe aprirsi automaticamente all'interno di Internet Explorer c'è un plugin apposta che fa questa cosa.
Puoi anche modificarlo ma le modifiche non potranno essere riportate sul server perchè in quel momento il file Excel è già sul tuo client, dovrai usare una pagina apposta per permettere all'utente di riuploadare il file modificato.

Per capire come si può uploadare un file via ASP.NET puoi seguire le istruzioni di uno degli ultimi Tips:
http://www.dotnethell.it/Tips/Tip.aspx?TipID=67

MrDuke Profilo | Newbie

Grazie della tempestività.....
ok, questa potrebbe essere una soluzione, l'unico problema è che dovrei riuscire ad automatizzare il tutto:
Cioè, ammettiamo che riesca a fargli aprite excel nel browser in automatico, dopo che lui salva in locale, come faccio a riprendere il controllo ???

Mi sembra assurdo che non ci sia nessuno modo per avere il controllo di Excel da browser (codice client), una volta partito il plug in.... basta ! più nulla !!

Mi servirebbe qualcosa tipo il vecchio controllo OLE di Visual Basic 6 (o precedenti) ricordi ??? Sarebbe il top !!!!

Se ti viene in mente qualche idea fammi sapè !!!

Brainkiller Profilo | Guru

Guarda in questo momento non saprei che altro consigliarti.
Purtroppo dal browser puoi controllare solo tramite linguaggi di script (Javascript, VbScript, JScript). Non puoi controllare un'istanza di Excel (perchè questo è alla fine) aperta all'interno del tuo browser.

Forse una cosa di questo tipo puoi implementarla usando Share Point Portal di Microsoft ma anche lì bisogna informarsi non lo conosco benissimo.

Ciao
David

chiara Profilo | Newbie

ciao, sto cercando anche io di aprire un foglio excel ma quando istanzio la classe Excel.Application mi da "accesso negato". Sapete dirmi da cosa dipende o come posso fare per risolvere il problema?
Grazie, Chiara

Brainkiller Profilo | Guru

Ok, stai instanziando Excel ma cosa stai utilizzando ?
I PIAs di Office oppure il componente classico o altro e in che linguaggio.
Dai una lettura qui:
http://support.microsoft.com/?id=325791

ciao
david

dominic Profilo | Newbie

ho visto questo script ho modficato ma a me non funziona.
ecco lo script:

<script language="c#">
object oMissing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.ApplicationClass xl=new Microsoft.Office.Interop.Excel.ApplicationClass();
Microsoft.Office.Interop.Excel.Workbook xlBook;
Microsoft.Office.Interop.Excel.Worksheet xlSheet;
xlBook = (Workbook)xl.Workbooks.Open("C:\taglio.xls");
xlSheet = (Worksheet)xlBook.Worksheets.get_Item(1);
xlSheet.Cells[1,1]="CIAO";
xlBook.Save();
xl.Application.Workbooks.Close();

</script>

dove sbaglio?
io in pratica dovrei aprire il file taglio.xls, scrivere in determinate celle e visualizzare il foglio excel-
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5