简体   繁体   中英

export to excel vb.net office 2010

I have a vb.net project, want to export to excel (2010) in english from axmshflexgrid. But I have always an exception Ancien format ou bibliothèque de type non valide and an empty excel file with this code

Private Sub cmd_export_excel_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmd_export_excel.Click

    On Error GoTo ErrorHandler

    Dim iRow As Short
    Dim iCol As Short
    Dim objExcl As Microsoft.Office.Interop.Excel.Application
    Dim objWk As Microsoft.Office.Interop.Excel.Workbook
    Dim objSht As Microsoft.Office.Interop.Excel.Worksheet
    Dim iHead As Short
    Dim vHead As Object

    objExcl = New Microsoft.Office.Interop.Excel.Application
    objExcl.Visible = True
    objExcl.UserControl = True


    Dim oldCI As System.Globalization.CultureInfo = _
System.Threading.Thread.CurrentThread.CurrentCulture
    System.Threading.Thread.CurrentThread.CurrentCulture = _
        New System.Globalization.CultureInfo("en-US")

    objWk = objExcl.Workbooks.Add
    System.Threading.Thread.CurrentThread.CurrentCulture = oldCI
    objSht = objWk.Sheets(1)

    vHead = Split(g.FormatString, "|")
    For iHead = 1 To UBound(vHead)
        If Len(Trim(vHead(iHead))) > 0 Then objSht.Cells._Default(1, iHead) = vHead(iHead)
    Next
    System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor

    For iRow = 0 To g.Rows - 1
        For iCol = 0 To g.get_Cols() - 1
            g.Row = iRow
            g.Col = iCol
            If g.Text <> "" Then


                objSht.Range(NumCol2Lattre(iCol + 1) & "" & iRow + 2 & ":" & NumCol2Lattre(iCol + 1) & "" & iRow + 2 & "").Select()

                objExcl.ActiveCell.Value = CStr(g.Text)

            End If
        Next iCol


    Next iRow

    objExcl.Application.Visible = True


    System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default

    objSht = Nothing
    objWk = Nothing
    objExcl = Nothing
    Exit Sub

ErrorHandler: objSht = Nothing objWk = Nothing objExcl = Nothing

    MsgBox("Error In expotation task & " & Err.Description, MsgBoxStyle.Information)
    Err.Clear()

End Sub

Do you have multiple versions installed?

Whats the version of you interop assemblies?

Compare the version with the created excel instance (objExcl.Version).

It looks like you have a version conflict.

You may have to re-install office2010 in this case(helps most of the time).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM