Napok óta rágódom az alábbi problámán, mert valamit nem jól csinálok.
Adott egy calc fájl. Macroval megnyitok egy csv fájlt (a fájl elérési utvonala a calc fálj cellájában található). Eddig tökéletesen működik a progim.
Azonban a csv fájlból nem tudom ármásolni az adott calc munkafözetbe az adatot. Vagy a csv fájlból a csv fájlba másol, vagy a calc-ból a cal-ba.
Kód: Egész kijelölése
Sub Csv_export2 'megnyit egy csv fájlt, megfelelő formázással -link a munkalapon
Dim Doc As Object 'macros-s fájl
Dim csv_adat As Object 'csv fájl
Dim FileProperties(1) As New com.sun.star.beans.PropertyValue
Dim Url As String
Dim Sheet As Object 'macro-s munkalap
Dim Doc_csv As Object 'csv-s munkalap
Doc = ThisComponent 'megnyitott dokumentm
Sheet = Doc.Sheets.getByName("Munkalap1")
Link_cell = Sheet.getCellRangeByName("E1") 'megnyitandó fájl elérési utjának cellája
Target = Link_cell.string ' Link_cell értéke szövegformátum
TargetURL = convertToURL(Target)
REM csv beállítása
FileProperties(0).Name = "FilterName"
FileProperties(0).Value ="Text - txt - csv (StarCalc)"
FileProperties(1).Name = "FilterOptions"
FileProperties(1).value = "59,34,13,1,1/2/2/5/3/5/4/2/5/1/6/2/7/2/8/2/9/2/10/2" 'mezőelválasztó(59,44,9),szöveghatároló (34,39),karakterkészlet,első sor száma, oszlopok kódszáma
Doc_csv = StarDesktop.loadComponentFromURL(TargetURL, "_blank", 0, FileProperties()) 'fájl
csv_adat= Doc_csv.sheets.getByName("Munkalap1") 'csv munkalap paraméterezése
REM csv-be dolgozok
Cell_2 = csv_adat.getCellRangeByName("D5")
print Cell_2.string
oRangeAddress = csv_adat.getCellRangeByName("C3").getRangeAddress() 'csv fájl munkalap: csv_adat
oCellAddress = Sheet.getCellRangeByName("A4").getCellAddress() 'makro-s doksi: Sheet
csv_adat.copyRange(oCellAddress, oRangeAddress)
'Doc_csv.close(true) ' csv dokumentum bezárása
End sub