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
CSV neumoznuje ukladat víc listů do souboru. Měl bys vybrat List v rámci WorkBooku a ten uložit jako.
Inspirace treba zde:
https://blogs.technet.microsoft.com/heyscriptingguy/2005/03/22/how-can-i-save-a-single-excel-worksheet-to-a-csv-file/
Trápím se, trápím, ... Dopracoval jsem se k tomuhle
Teď mi to na tom SaveAs křičí "COMexception was unhandled", Výjimka na základě hodnoty HRESULT: 0x800A03EC.
A jsi si jistý, ze ten parametr "xlCSVWindow" má být v uvozovkách? Myslím, že ne. Jinak na netu je jen xlCSV
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.
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.
Moc děkuju.
S tím XlFileFormat.xlCSVWindows už se to dalo prostrkat až k úspěšnému konci. Ale nakonec jsem se zařídil podle druhé části odpovědi a přepsal jsem to s použitím EPPlus.