Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    45

    vb net problema lettura foglio excel

    Salve a tutti-
    non riesco a venire fuori dal seguente errore che si verifica in fase di lettura di un foglio excel, quando mi dovrebbe visualizzare la SECONDA cella del foglio, la prima cella me la visualizza correttamente

    L'oggetto invocato si è disconnesso dai client corrispondenti. (Eccezione da HRESULT: 0x80010108 (RPC_E_DISCONNECTED))

    il codice postato successivamente risulta funzionante ma mi fa vedere solo il contenuto della prima cella (la 1,1 per intenderci che sarebbe la prima cella dell'intestazione), quando dovrebbe farmi vedere la seconda cella mi dà l'errore indicato

    provato sia su XP (con il riferimento versione 11 di excel office 2003) che su vista (riferimento versione 12 di excel office 2007) il risultato è identico.

    Codice:

    Private Sub btn_leggi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_leggi.Click
    Dim op_input = New OpenFileDialog
    Dim nomefilexls, strperc As String
    op_input.InitialDirectory = "C:"
    op_input.Filter = "file xls da leggere|*.xls|tutti i files|*.*"
    Call op_input.ShowDialog()
    If op_input.FileName = "" Then
    Call MessageBox.Show("selezionare un file")
    Exit Sub
    End If
    nomefilexls = op_input.filename
    Dim exApp As Microsoft.Office.Interop.Excel.Application
    Dim exWb As Microsoft.Office.Interop.Excel.Workbook
    Dim exWs As Microsoft.Office.Interop.Excel.Worksheet
    Dim numRighe, numcolonne, indriga, indcolonna, numcsv As Integer
    'apre excel
    exApp = New Microsoft.Office.Interop.Excel.Application
    exApp.Visible = True

    'apre il file xls
    strperc = nomefilexls
    exWb = exApp.Workbooks.Open(strperc)

    'seleziona il foglio 1
    exWs = exWb.Worksheets(1)

    'conta il numero di righe
    numRighe = exWs.UsedRange.Rows.Count

    'conta il numero di righe
    numcolonne = exWs.UsedRange.Columns.Count

    For indriga = 1 To numRighe
    'leggo il contenuto delle celle
    rigacsv = String.Empty
    For indcolonna = 1 To numcolonne
    MsgBox(exWb.Worksheets(1).Cells(indriga, indcolonna).Value)
    Next
    Next

    'salva e chiude file
    'exWb.Save()
    exWb.Close()
    'esce da excel
    exApp.Application.Quit()
    'cancella le variabili oggetto
    exApp = Nothing
    exWb = Nothing
    exWs = Nothing
    End Sub

    Grazie per l'eventuale aiuto.

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    La variabile rigacsv non è dichiarata, ma a parte questo non vi sono errori.
    Basta commentare la riga:
    'rigacsv = String.Empty

    per il resto il codice funziona bene.

    Verifica di aver aggiunto gli Imports corretti
    Imports Microsoft.Office.Interop (*)
    Imports System.Runtime.InteropServices


    (*)
    Se hai aggiunto l'Imports, nel codice non serve usare l'intero percorso del namespace:
    Dim exApp As Microsoft.Office.Interop.Excel.Application
    ma è sufficiente utilizzare:
    Dim exApp As Excel.Application


  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    45
    grazie per le risposte innanzitutto.....

    si, per la varaiabile rigacsv non dichiarata avevo tolto parti di codice da postare per renderlo più leggibile

    avevo omesso la riga Imports System.Runtime.InteropServices
    e invece della riga

    Imports Microsoft.Office.Interop

    avevo messo

    Imports Microsoft.Office.Interop.excel

    una volta messo tutto come da te suggerito, purtroppo il risultato non è cambiato, continuo a beccare sempre lo stesso errore....

    di nuovo grazie per l'interessamento e se hai altri suggerimenti ben vengano....

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Sinceramente non riscontrando alcun errore non saprei cosa dirti.

    Prova a fare una ricerca su Google...

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    45
    NON RIDETE Il mistero si infittisce sempre di più....

    Provando a inserire all'interno del ciclo for-next della colonna (quello nidificato al secondo livello) le varie istruzioni per l'apertura e chiusura del foglio xls funziona tutto !!!!

    in pratica chiudendolo e riaprendolo cella per cella e dandogli correttamente le coordinate della cella (riga,colonna) il codice funziona !!!!

    Per il momento cerco di andare avanti con con questa per niente gratificante soluzione "fantozziana", ovviamente i tempi di risposta sono deprimenti....
    Se può interessare, per evitare di far partire l'excel in fase di visualizzazione di ogni cella basta mettere exApp.Visible = False

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.