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