Bewaren van excel via vb.net

Status
Niet open voor verdere reacties.

cptnalgren

Gebruiker
Lid geworden
20 dec 2007
Berichten
49
Beste,

Heb een probleem :

Code:
Dim oExcel As New Microsoft.Office.Interop.Excel.Application
        oExcel.Workbooks.Open("c:\Foodpads.xlsx")
        oExcel.Visible = False
        oExcel.Worksheets("Test").cells(3, 2) = Date.Now()
        Dim i As Integer
        Dim j As Integer
        Dim a As Integer = 6
        Dim b As Integer = 1
        For i = 0 To dgvAfgewerkt.RowCount - 2
            For j = 0 To dgvAfgewerkt.ColumnCount - 1
                oExcel.Worksheets("Test").Cells(a + i, b + j) = _
                    dgvAfgewerkt(j, i).Value.ToString()
            Next
        Next
        Dim naam As String
        naam = InputBox("Geef Naam Van Bakker")
        oExcel.SaveWorkspace("C:\Foodpads" & Format(Date.Now(), "yyyymmdd") & naam & ".xls")
        MsgBox("C:\Foodpads" & Format(Date.Now(), "yyyymmdd") & naam & ".xls", MsgBoxStyle.OkOnly, "De bon werd opgeslagen onder de volgende naam")
        oExcel.Quit()

als ik deze code gebruik en ik wil het opgeslagen bestand openen zegt hij dat het geen geldig bestand is , wat doe ik verkeerd?
Hij bewaart het wel degelijk en schrijft er ook dingen in weg, alleen bij het openen krijg ik problemen
 
Laatst bewerkt:
In de eerste regel open je een .xlsx

en je slaat hem op als .xls

Daar gaat het waarschijnlijk fout.
 
Is het probleem niet, weet dat ik hem anders opslaan . Ik sla hem op als een excel97, maar zelfs als ik hem bewaar als een 2007(xlsx) heb ik hetzelfde probleem
 
Ik zal eens even voor je kijken, maar nog even ter bevestiging: sluit je het bestand wel af? Dus sluit je het workbook wel op het moment dat je het bestand hebt gevuld?
 
Dat betwijfel ik, want volgens mij sluit je dan de Excel handler af en niet het bestand.

Heb je ook een mogelijkheid die lijkt op oExcel.Workbooks.Close()

Of iets dat daar op lijkt?
 
heb ik gedaan maar het probleem blijft, volgens mij heeft het te maken met het feit dat ik geen SaveAs meer kan doen in de nieuwe vb.net (2008) vroeger ging dat wel
 
Het lijkt erop dat er iets fout gaat met de manier waarop die Excel Handler hem opslaat.

Wil je het bestand dat hij aanmaakt hier eens posten als bijlage?
 
in bijlage de 2 bestanden
 

Bijlagen

  • Foodpads20104225TEST2.xls
    270 bytes · Weergaven: 32
  • Foodpads.xlsx
    11,7 KB · Weergaven: 37
heb ik gedaan maar het probleem blijft, volgens mij heeft het te maken met het feit dat ik geen SaveAs meer kan doen in de nieuwe vb.net (2008) vroeger ging dat wel

Dat heeft vrij weinig met de nieuwe versie van VB.NET te maken, maar met de library die je gebruikt.

Wat ik mij afvraag, je slaat je workspace op, maar niet je workbook. Dus volgens mij probeer je nu niet het .xls bestand te openen maar het tabblad test dat in bestand foodpads.xlsx staat.
 
Laatst bewerkt:
Wat ik mij afvraag, je slaat je workspace op, maar niet je workbook. Dus volgens mij probeer je nu niet het .xls bestand te openen maar het tabblad test dat in bestand foodpads.xlsx staat.

hoe los ik dit dan op?
 
dus met het feit dat ik office2007 gebruik en niet meer office2000?

Ja dat heeft waarschijnlijk de library veranderd.

Om hoe je dat oplost, dat moet ik ook even uitzoeken, maar je hebt geen mogelijkheid om je workbook op te slaan?
 
neen, als ik OExcel.Workbooks. neem kan ik niets kiezen wat te maken heeft met save
alleen kan ik dus OExcel.SaveWorkspace nemen
 
Wat ik mij afvraag, je slaat je workspace op, maar niet je workbook. Dus volgens mij probeer je nu niet het .xls bestand te openen maar het tabblad test dat in bestand foodpads.xlsx staat.

Dit lijkt inderdaad zo en daar zit dus idd volgens mij ook de fout, nu nog een manier bedenken om dit op te lossen, hij saved dus inderdaad het werkblad maar niet heel de excel, vandaar dus de foutmelding

kan dus ook het werkboek opslaan volgens onderstaande code :

Dim XL As New Microsoft.Office.Interop.Excel.Application
Dim XLWorkbook as new Microsoft.Office.Interop.Excel.Workbook

XL.Visible = True
XLWorkbook = XL.Workbooks.Open(XLTemplatePath)
XLWorkbook.SaveAs(XLSaveReportPath)
XL.Workbooks.Close()
XL.Workbooks.Open(XLSaveReportPath)
 
Laatst bewerkt:
Code:
Dim oExcel As New Microsoft.Office.Interop.Excel.Application
        Dim OWorkbook As New Microsoft.Office.Interop.Excel.Workbook
        OWorkbook = oExcel.Workbooks.Open("c:\Foodpads.xlsx")
        oExcel.Visible = True
        oExcel.Worksheets("Test").cells(3, 2) = Date.Now()
        Dim i As Integer
        Dim j As Integer
        Dim a As Integer = 6
        Dim b As Integer = 1
        For i = 0 To dgvAfgewerkt.RowCount - 2
            For j = 0 To dgvAfgewerkt.ColumnCount - 1
                oExcel.Worksheets("Test").Cells(a + i, b + j) = _
                    dgvAfgewerkt(j, i).Value.ToString()
            Next
        Next
        Dim naam As String
        naam = InputBox("Geef Naam Van Bakker")
        OWorkbook.SaveAs("C:\Foodpads" & Format(Date.Now(), "yyyymmdd") & naam & ".xls")
        MsgBox("C:\Foodpads" & Format(Date.Now(), "yyyymmdd") & naam & ".xls", MsgBoxStyle.OkOnly, "De bon werd opgeslagen onder de volgende naam")
        oExcel.Workbooks.Close()

        oExcel.Quit()


dit is dan de fout die ik krijg

Retrieving the COM class factory for component with CLSID {00020819-0000-0000-C000-000000000046} failed due to the following error: 80040154.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan