2016-08-31 2 views
-1

Ich arbeite an einer kleinen Aufgabe, die nur die Daten aus der SQL-Datenbank in Excel kopieren. Für eine Arbeitsmappe bekomme ich den Fehler: HRESULT: 0x800A03EC Meine Intuition sagt mir, dass in dieser Zelle Excel versucht, eine Formel wegen der Zeichen zu lösen, die er von der Datenbank erhält. Wie kann ich Formeln von vb.net nicht lösen und ihm sagen, dass er nur die Daten kopieren soll, die er bekommt?Unable Excel zu lösen Formeln über vb.net (Fehler: HRESULT: 0x800A03EC)

Das Problem sollte hier sein:

For Each dr In Table.Rows 
        rowIndex = rowIndex + 1 
        colIndex = 0 
        For Each dc In Table.Columns 
         colIndex += 1 
         '08/2016 MM Byte[] können nicht in Excel exportiert werden 
         If Not System.Type.GetType("System.Byte[]").Equals(dr(dc.ColumnName).GetType) Then 
          oWS.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName) 


         Else 
          oWS.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName).ToString 

         End If 

        Next 

Jede gehalten wäre sehr willkommen! Vielen Dank!

+0

Warum Sie nicht über ein ' 'setzen', bevor die Daten? – theBugger

+0

Danke Mann, ich dachte es auch, aber ich dachte es war, weil Excel Berechnungen machte, die es nicht tun sollte. Nachdem ich mir sicher war, dass es sich um einen riesigen String mit vielen Charakteren handelte, versuchte er zu kopieren. Ich habe den Code ein wenig geändert und es hat funktioniert! Danke nochmal @theBugger –

+0

Gut für dich. Vielleicht fügen Sie eine Antwort hinzu, die erklärt, wie Sie gelöst haben – theBugger

Antwort

0

Gelöst es Jungs, vergleichen Sie einfach den Code oben und diese ein:

For Each dr In Table.Rows 
        rowIndex = rowIndex + 1 
        colIndex = 0 
        For Each dc In Table.Columns 
         colIndex += 1 

         If Not System.Type.GetType("System.Byte[]").Equals(dr(dc.ColumnName).GetType) Then 
          Try 
           oWS.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName) 
          Catch ex As Exception 
           If System.Type.GetType("System.String").Equals(dr(dc.ColumnName).GetType) Then 
            oWS.Cells(rowIndex + 1, colIndex) = """" + dr(dc.ColumnName) + """" 
           Else 
            'Exception konnte nicht aufgelöst werden, weiter werfen 
            Throw ex 
           End If 
          End Try 

         Else 
          oWS.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName).ToString 

         End If 

        Next 
       Next 
Verwandte Themen