Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [VBNET]Aprire file Excel

    Ciao a tutti.
    Sono nuova del forum e una principiante di VB net.

    Vorrei un aiutino per il mio primo programma: una maschera che chieda di selezionare un file excel, lo apra, acquisisca la selezione che faccio col mouse, riconosca se nelle celle ci sono delle formule e in questo caso le esporti pari pari in un nuovo file di excel.

    Un problema alla volta. Per poter lavorare sul foglio di Excel ho scritto:

    (Dopo aver aggiunto il riferimento Microsoft Excel)

    Dim path As String
    Dim filexls As Excel.Workbook

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim xlsapp As Object
    xlsapp = CreateObject("Excel.Application")


    OpenFileDialog1.ShowDialog()
    path = OpenFileDialog1.FileName
    xlsapp.document.open(path)

    (Qui mi dice “Impossibile trovare il membro pubblico 'document' nel tipo 'ApplicationClass'”)

    End With

    Che devo fare?

    Grazie a tutti per i suggerimenti !

  2. #2
    document è per word(che poi non è così, ma documents)... devi mettere xlsapp.Workbooks.Add(path)...

    un altra nota: non usare la funzione createobject usa la parola chiave new

    poi io farei così:

    codice:
            Dim xlsApp As Excel.Application, xlswkb As Excel.Workbook
            If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
                xlsApp = New Excel.Application
                xlswkb = xlsApp.Workbooks.Add(OpenFileDialog1.FileName)
                'fai quello che devi fare
                xlswkb.Close()
                xlswkb = Nothing
                xlsApp.Quit()
                xlsApp = Nothing
            End If
    ricordati di inserire i riferimenti di microsoft office excel nel progetto.

    poi dipende se vuoi far vedere all'utente quello che fà il tuo programma
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  3. #3
    Grazie caro!
    Ora però mi da questo errore..... Libreria non registrata!
    Per registrare la libreria è sufficiente "progetto - aggiungi riferimento" e quindi doppio click su "Microsoft Excel 11.0... "? o devo fare qualcos'altro?


    graazzzzzzzzzzie

    System.InvalidCastException non è stata gestita
    Message="Impossibile eseguire il cast di oggetti COM di tipo 'Microsoft.Office.Interop.Excel.ApplicationClass' in tipi di interfaccia 'Microsoft.Office.Interop.Excel._Application'. L'operazione non è stata completata perché la chiamata QueryInterface sul componente COM per l'interfaccia con IID '{000208D5-0000-0000-C000-000000000046}' non è riuscita a causa del seguente errore: Libreria non registrata. (Eccezione da HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED))."
    Source="Microsoft.Office.Interop.Excel"
    StackTrace:
    in Microsoft.Office.Interop.Excel.ApplicationClass.ge t_Workbooks()
    in WindowsApplication1.Scovaformule.Button1_Click(Obj ect sender, EventArgs e) in C:\Documents and Settings\martina\Documenti\Visual Studio 2008\Projects\Scovaformule\Scovaformule\Form1.vb:r iga 18
    in System.Windows.Forms.Control.OnClick(EventArgs e)
    in System.Windows.Forms.Button.OnClick(EventArgs e)
    in System.Windows.Forms.Button.OnMouseUp(MouseEventAr gs mevent)
    in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    in System.Windows.Forms.Control.WndProc(Message& m)
    in System.Windows.Forms.ButtonBase.WndProc(Message& m)
    in System.Windows.Forms.Button.WndProc(Message& m)
    in System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
    in System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
    in System.Windows.Forms.NativeWindow.DebuggableCallba ck(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    in System.Windows.Forms.UnsafeNativeMethods.DispatchM essageW(MSG& msg)
    in System.Windows.Forms.Application.ComponentManager. System.Windows.Forms.UnsafeNativeMethods.IMsoCompo nentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
    in System.Windows.Forms.Application.ThreadContext.Run MessageLoopInner(Int32 reason, ApplicationContext context)
    in System.Windows.Forms.Application.ThreadContext.Run MessageLoop(Int32 reason, ApplicationContext context)
    in System.Windows.Forms.Application.Run(ApplicationCo ntext context)
    in Microsoft.VisualBasic.ApplicationServices.WindowsF ormsApplicationBase.OnRun()
    in Microsoft.VisualBasic.ApplicationServices.WindowsF ormsApplicationBase.DoApplicationModel()
    in Microsoft.VisualBasic.ApplicationServices.WindowsF ormsApplicationBase.Run(String[] commandLine)
    in WindowsApplication1.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:riga 81
    in System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
    in System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
    in Microsoft.VisualStudio.HostingProcess.HostProc.Run UsersAssembly()
    in System.Threading.ThreadHelper.ThreadStart_Context( Object state)
    in System.Threading.ExecutionContext.Run(ExecutionCon text executionContext, ContextCallback callback, Object state)
    in System.Threading.ThreadHelper.ThreadStart()
    InnerException:

  4. #4
    nei riferimenti aggiungi i riferimenti com o .net?
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  5. #5
    Tipo COM

    "Microsoft Excell 11.0 Object Library"



  6. #6
    prova a fare un trycast... se ti restituisce nothing esci dalla sub
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    105
    Ragazzi ciao.
    Mi aggiungo alla vostra discussione per presentarvi il mio problema.

    Apro il progetto VB.NET 2005.
    Aggiungo il riferimento COM alla libreria Excell 12.0 (c:\prog..\m.o.\office12\excell.exe).
    Copio ed incollo il codice segnalato da "andreaciao_22" e mi viene restituito il seguente errore alla riga di codice "xlswkb = xlsApp.Workbooks.Add(txtFile_Elenco_NC.Text)" :

    Formato vecchio o libreria di tipo non valido. (Eccezione da HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))


    Non riesco a trovare nessuna info utile per risolvere questo problema!

    Help me please!
    Vettorob

  8. #8

  9. #9
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    Ma non sarà un pò troppo vecchiotta questa discussione per essere riesumata?

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,461

    Moderazione

    Originariamente inviato da vettorob
    Mi aggiungo alla vostra discussione per presentarvi il mio problema.
    La prossima volta, non aggiungerti a una discussione vecchia di tre anni, ma apri una discussione separata per trattare il tuo problema specifico, come richiesto dal Regolamento.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.