Avatar billede deamill Nybegynder
17. oktober 2012 - 11:32 Der er 6 kommentarer og
1 løsning

Gemme i excell i VB.NET 2005

Hej,

Jeg kan ikke oprette og gemme data i en excell fil.

Jeg får følgende fejl når jeg eksekverer nedenstående kode:
Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))

Fejlen opstår her:
xlWorkSheet = xlWorkBook.Sheets("sheet1")

Jeg anvender office 2010 - Komponentet Microsoft Excell 14 Version 1.7.

Koden:

Imports Excel = Microsoft.Office.Interop.Excel

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim xlApp As Excel.Application
        Dim xlWorkBook As Excel.Workbook
        Dim xlWorkSheet As Excel.Worksheet
        Dim misValue As Object = System.Reflection.Missing.Value

        xlApp = New Excel.ApplicationClass
        xlWorkBook = xlApp.Workbooks.Add(misValue)
        xlWorkSheet = xlWorkBook.Sheets("sheet1")
        xlWorkSheet.Cells(1, 1) = "http://vb.net-informations.com"
        xlWorkSheet.SaveAs("C:\vbexcel.xlsx")

        xlWorkBook.Close()
        xlApp.Quit()

        releaseObject(xlApp)
        releaseObject(xlWorkBook)
        releaseObject(xlWorkSheet)

        MsgBox("Excel file created , you can find the file c:\")
    End Sub

    Private Sub releaseObject(ByVal obj As Object)
        Try
            System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
            obj = Nothing
        Catch ex As Exception
            obj = Nothing
        Finally
            GC.Collect()
        End Try
    End Sub

End Class




Nogen som kan hjælpe?

/Kenneth
Avatar billede deamill Nybegynder
18. oktober 2012 - 16:02 #1
Er der slet ingen som ved hvordan man gemmer i en excell fil fra VB .Net?
Avatar billede Mads Larsen Nybegynder
19. oktober 2012 - 09:42 #2
Og du er sikker på at "Sheet1" findes?
Du kunne evt. prøve med xlWorkSheet = xlWorkBook.Sheets(1) (Efter som arket hedder Sheet1 går jeg ud fra du kun har 1 ark i den)
Avatar billede deamill Nybegynder
19. oktober 2012 - 10:45 #3
Hej,

Øhm, der er jo ikke noget regneark endnu. Ovenstående kode skulle så vidt jeg kan læse mig frem til oprette et regneark og så kan man tilføje ting til det?

Jeg forsøger jo at eksporterer noget til excell, men excell arket eksisterer jo ikke, der skal oprettes i samme ombæring.

/Kenneth
Avatar billede Mads Larsen Nybegynder
19. oktober 2012 - 11:07 #4
xlWorkBook.Sheets("sheet1") <-- vælger arket som hedder sheet1.
Men hvis du sidder med en dansk office, så vil den blive kaldt "Ark1"

Men hvis du skriver  xlWorkBook.Sheets(1) så vil den tage det første ark som findes i arket.



Denne her kode virker for mig.

        Dim xlApp As New Excel.Application
        Dim xlWorkBook As Excel.Workbook
        Dim xlWorkSheet As Excel.Worksheet
        Dim misValue As Object = System.Reflection.Missing.Value

        xlWorkBook = xlApp.Workbooks.Add(misValue)
        xlWorkSheet = xlWorkBook.Sheets(1)
        xlWorkSheet.Cells(1, 1) = "http://vb.net-informations.com"
        xlWorkSheet.SaveAs("C:\vbexcel.xlsx")

        xlWorkBook.Close()
        xlApp.Quit()

        releaseObject(xlApp)
        releaseObject(xlWorkBook)
        releaseObject(xlWorkSheet)

        MsgBox("Excel file created , you can find the file c:\")
Avatar billede deamill Nybegynder
19. oktober 2012 - 11:18 #5
Du har fuldstændig ret! Tak for hjælpen :-)
Avatar billede Mads Larsen Nybegynder
19. oktober 2012 - 11:19 #6
Det var så lidt :-)
Avatar billede deamill Nybegynder
19. oktober 2012 - 12:05 #7
Du får lige point, men ved du om man kan angive om en celle er tal eller tekst? Jeg kan selvfølgelig bare adde en ' foran værdien jeg smider ind, men måske der er en bedre måde?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester