Ciao a tutti!!

Vi scrivo perchè ho il seguente problema. Devo esportare i dati da una datagridview ad un file .csv (formato Excel per intenderci). Ho guardato in lungo ed in largo e non riesco a trovare una soluzione al seguente messaggio di errore:

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

Le operazioni che ho fatto sono state molteplici:

- Ho cambiato la lingua nelle impostazioni internazionali
- Ho impostato la lingua di installazione dell'ambiente di sviluppo alla lingua delle impostazioni internazionali
- Ho installato le dll del tools di office per visual studio 2005 (in particolar modo Microsoft Office XP Primary Interop Assemblies Registration Utility)

ma da sempre lo stesso errore.

La parte di codice in cui vado a fare l'export dati dalla datagridview al file excel è la seguente:

codice:
 

            ReDim arrCell(datagridMail.RowCount)

            Dim excelApp As New Excel.Application
            Dim excelBook As Excel.Workbook = excelApp.Workbooks.Add()  ' --> ERRORE
            Dim excelWorksheet As Excel.Worksheet = CType(excelBook.Worksheets(1), Excel.Worksheet)

            excelApp.Visible = False
            With excelWorksheet

                Dim counter As Integer = 0
                For Each dc As DataColumn In datatableMail.Columns
                    .Range(arrCell(counter) & "1").Value = dc.ColumnName.ToString().Trim()
                    .Range(arrCell(counter) & "1").ColumnWidth = 15
                    counter = counter + 1
                Next

                Try
                    counter = 2
                    For Each dr As DataRow In datatableMail.Rows
                        For i = 0 To datatableMail.Columns.Count - 1
                            If dr(i) Is System.DBNull.Value Then
                                .Range(arrCell(i) & counter.ToString()).Value = ""
                            Else
                                .Range(arrCell(i) & counter.ToString()).Value = dr(i).ToString()
                            End If
                        Next
                        counter = counter + 1
                    Next

                Catch ex As Exception
                    MessageBox.Show("NON VA", "ERRORE", MessageBoxButtons.OK)
                End Try

                excelWorksheet.SaveAs(filename)
                excelApp.Quit()
                excelApp = Nothing
            End With
Grazie mille!!

Ciao

Rick