Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno VB.NET xls do csv

Dobrý den.
Potřebuji ve VisualBasic.NET vyexportovat xlsx soubor do csv. Jenže s funkcí SaveAs jsem narazil. Hlásí mi to "missing member exception was unhandled" pro SaveAs.

Imports Microsoft.Office.Interop
Module Module1
    Sub Main()
        Dim tabulka As Excel.Application = CType(CreateObject("excel.application"), Excel.Application)
        tabulka.Workbooks.Open(Filename:="C:\vibas\zdroj.xlsx")
        tabulka.SaveAs("C:\vibas\cil.csv", "xlCSVWindows")
        tabulka.Workbooks.Close()
        tabulka.Quit()
    End Sub
End Module

Je nějaká možnost, jak pomocí VB.NET převést excelovskou tabulku do csv (nebo nějakého podobného textového formátu) ?
Windows 7 64bit CZ, MS VisualBasic 2010 express, nainstalovaný MS Office 2010

Řešení:

Určite to tam nemá ísť ako reťazec, ale ako XlFileFormat.xlCSVWindows.

Osobne by som sa vyhol nie len Interop knižniciam k pristupovaniu k Excelu, ale celkovo použitiu COM, a namiesto toho by som použil nejakú knižnicu, napríklad EPPLus.

Předmět Autor Datum
CSV neumoznuje ukladat víc listů do souboru. Měl bys vybrat List v rámci WorkBooku a ten uložit jako…
Jan Fiala 27.04.2018 10:56
Jan Fiala
Trápím se, trápím, ... Dopracoval jsem se k tomuhle Imports Microsoft.Office.Interop Module Module1…
TarasBulba 27.04.2018 13:07
TarasBulba
A jsi si jistý, ze ten parametr "xlCSVWindow" má být v uvozovkách? Myslím, že ne. Jinak na netu je j…
Jan Fiala 27.04.2018 13:48
Jan Fiala
Když odstraním ty uvozovky, tak ji bere jako proměnnou a křičí, že není definovaná. Já mám dojem, že…
TarasBulba 27.04.2018 14:44
TarasBulba
Určite to tam nemá ísť ako reťazec, ale ako XlFileFormat.xlCSVWindows. Osobne by som sa vyhol nie l…
los 27.04.2018 15:14
los
Moc děkuju. S tím XlFileFormat.xlCSVWindows už se to dalo prostrkat až k úspěšnému konci. Ale nakone… poslední
TarasBulba 02.05.2018 15:48
TarasBulba

Trápím se, trápím, ... Dopracoval jsem se k tomuhle

Imports Microsoft.Office.Interop
Module Module1
    Sub Main()
        Dim objExcel, objWorkbook, objWorkSheet
        objExcel = CreateObject("Excel.Application")
        objExcel.Application.Visible = True
        objWorkbook = objExcel.Workbooks.Open("C:\vibas\zdroj.xlsx")
        objWorkbook.Worksheets("list1").activate()
        objWorkSheet = objWorkbook.Worksheets("list1")
        objWorkSheet.SaveAs("c:\scripts\test.csv", "xlCSVWindows")
        objExcel.Workbooks.Close()
        objExcel.Quit()
    End Sub
End Module

Teď mi to na tom SaveAs křičí "COMexception was unhandled", Výjimka na základě hodnoty HRESULT: 0x800A03EC.

Když odstraním ty uvozovky, tak ji bere jako proměnnou a křičí, že není definovaná. Já mám dojem, že celá konstrukce toho SaveAs je špatně, ale vrátím se k tomu až po neděli. Jsou dny, kdy to prostě nejde.
Kdybych našel nějaký free konvertor, co by šel zavolat z commandlajny, tak bych se v tom nevrtal. Jenže ani na ten jsem nenarazil. Zatím díky za ochotu.

Zpět do poradny Odpovědět na původní otázku Nahoru