Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    89

    VB net errore in lettura file xls

    Mi occorre da codice Vb net versione 2010, leggere un foglio excel.

    ma mi torna in esecuzione questo errore
    Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))

    ho usato uno script trovato in rete alquanto semplice che allego.
    Se qualcuno ha qualche idea grazie

    Grazie Stefania



    Dim xlBook As Excel.Workbook
    xlBook = GetObject("C:\foglio.xls")
    xlBook.Application.Visible = False
    xlBook.Windows(1).Visible = False
    Dim Righe As Integer
    Dim Colonne As Integer

    'Il foglio Excel contiene tre righe e tre colonne
    For Righe = 1 To 3
    For Colonne = 1 To 3
    MsgBox(xlBook.Worksheets(1).Cells(Righe, Colonne).Value)
    Next Colonne
    Next Righe

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Probabilmente c'è un incompatibilità tra la lingua di Excel e la lingua del Sistema operativo.

    Potresti risolvere in questo modo, visto che tale eccezione la solleva nel momento in cui aggiungi il Workbook:

    codice:
      Dim wapp As New Microsoft.Office.Interop.Excel.Application
            Dim wbooks As Excel.Workbooks
            Dim wbook As Excel.Workbook
            Dim wsheet As Microsoft.Office.Interop.Excel.Worksheet
            Dim range As Excel.Range
    
            Try       
                wbooks = wapp.Workbooks
                Try
                    wbook = wbooks.Add  'Qui si verifica l'eccezione
                Catch ex As Exception
                    System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US")
                    wbook = wbooks.Add
                End Try
                wsheet = CType(wapp.ActiveSheet, Excel.Worksheet)
    
                wapp.Visible = False
                wsheet.Application.DisplayAlerts = False
                wsheet.Columns.ColumnWidth = 13
    
                wsheet.Cells(1, 1).Value = "Mio valore"
    Sbagliare è umano, perseverare è diabolico.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    89
    mi sembra però che il tuo sia un esmpio di preparazione di un xls con valorizzazione delle celle. Io volevo leggere il foglio non valorizzarlo.

    grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Opss hai ragione scusa...........ma dove ho la testa???
    Non so dove tu abbia reperito quel codice ma ti consiglio questo per la lettura:

    Dim excel As Microsoft.Office.Interop.Excel.Application
    Dim wb As Microsoft.Office.Interop.Excel.Workbook
    Dim ws As Microsoft.Office.Interop.Excel.Worksheet
    excel = New Microsoft.Office.Interop.Excel.Application
    wb = excel.Workbooks.Open("C:\Foglio1.xls")
    excel.Visible = False
    wb.Activate()
    ws = wb.Worksheets.Item(1)
    ws = excel.ActiveSheet
    TextBox1.Text = ws.Cells(1, 1).value
    excel.Workbooks.Close()
    excel.Quit()
    Sbagliare è umano, perseverare è diabolico.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    89
    con questa versione che mi hai passato che in effetti somiglia alquanto allo script che avevo postato all'inizio
    mi torna anche lui identico errore all'apertura del foglio xls
    Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Per curiosità su quale riga si solleva l'eccezione ?
    Sbagliare è umano, perseverare è diabolico.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    89
    RISOLTO

    girando e girando sul web, ho trovato che si tratta di un bug riconosciuto da microsoft

    http://support.microsoft.com/default...b;en-us;320369

    ho risolto con il set the cultureInfo come nell'esempio al link indicato

    set the CultureInfo prior to calling the Excel method.

    Grazie comunque per il supporto
    Ciao Stefania

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Te l'avevo già postato!
    Sbagliare è umano, perseverare è diabolico.

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.