csv fájl megnyitása, abból adat ámásolása calc-ba macroval

Táblázatkezelő

csv fájl megnyitása, abból adat ámásolása calc-ba macroval

HozzászólásSzerző: Ermi » 2018. december 21., péntek 13:31

Üdv!
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   KinyitásÖsszecsukás
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


Van valakinek ötlete, mi hiányzik?
OpenOffice 3.1 a Windows 10-n
Ermi
 
Hozzászólások: 2
Csatlakozott: 2018. december 21., péntek 12:30

Re: csv fájl megnyitása, abból adat ámásolása calc-ba macrov

HozzászólásSzerző: Zizi64 » 2018. december 21., péntek 14:10

Van valakinek ötlete, mi hiányzik?
OpenOffice 3.1 a Windows 10-n


Egyrészt egy-egy mintafájl kellene mind a forrásdokumentum .csv fájlból mind pedig a céldokumentum .ods fájljából, Tudsz ilyeneket ide feltölteni?

Másrészt nem tudom elhinni, hogy azt a réges-régi verziót használod. Az vele a baj, hogy ha olyasmit javaslunk, amit csak az újabbak tudnak, a régi meg még nem, akkor nem vagy kisegítve; ha pedig az a verzió ezen a területen esetleg hibás volt, akkor pedig senki nem fogja már abban a verzióban a hibát kijavítani.
Sok sikert!
Kovács Tibor (Win7x64Prof/W10x64prof: LO6.1.6;
winPenPack/PortableApps: LO3.3.1-6.2.5, AOO4.1.6
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címe elejének szerkesztésével - tedd hozzá: [Megoldva].
Avatar
Zizi64
Globális moderátorok
 
Hozzászólások: 3444
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: csv fájl megnyitása, abból adat ámásolása calc-ba macrov

HozzászólásSzerző: Zizi64 » 2018. december 21., péntek 19:24

Ha a cellatulajdonságokat (formázásokat) is akarod másolni (ez erősen ellenjavallt!!!) akkor a vágólapon keresztül történő másolást tudom ajánlani. De a formázások, cellatulajdonságok még inkább a stílusok intenzív használatát.


Ha viszont elegendő a cellatartalmat másolni, akkor a
Kód: Egész kijelölése   KinyitásÖsszecsukás
oTarget.setDataArray( oSource.getDataArray )
API függvények használatát javaslom. Itt van egy példa az angol fórumról:
https://forum.openoffice.org/en/forum/v ... hp?t=55228

API: Application Programming Interface

A te megoldásodnak a hatóköre valószínűleg be van korlátozva egy dokumentumon belülre. De ezt nem tudom pontosan. Azt se, hogy csak a régi programverzió miatt, vagy a mostaniakban is. Ezt csak akkor próbálom ki, ha már töltöttél fel mintadokumentumokat.
Sok sikert!
Kovács Tibor (Win7x64Prof/W10x64prof: LO6.1.6;
winPenPack/PortableApps: LO3.3.1-6.2.5, AOO4.1.6
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címe elejének szerkesztésével - tedd hozzá: [Megoldva].
Avatar
Zizi64
Globális moderátorok
 
Hozzászólások: 3444
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: csv fájl megnyitása, abból adat ámásolása calc-ba macrov

HozzászólásSzerző: Ermi » 2018. december 22., szombat 15:09

a macros fájl és csv adatállományt csatolom
Csatolmányok
Sz3_1-11.csv
csv fájl
(42.58 KiB) 21 alkalommal.
makro_calc.ods
ebbe kellene átvenni adatot
(14.25 KiB) 17 alkalommal.
OpenOffice 3.1 a Windows 10-n
Ermi
 
Hozzászólások: 2
Csatlakozott: 2018. december 21., péntek 12:30

Re: csv fájl megnyitása, abból adat ámásolása calc-ba macrov

HozzászólásSzerző: Zizi64 » 2018. december 22., szombat 18:26

Letöltöttem, próbálom a fájljaidat. LibreOffice 6.1.4-ben próbálom.

Az első hiba talán már meg is van. A .csv fájlod megnyílik a makró hatására, de az egyetlen munkalap a megnyílt .ods fájlban nem "Munkalap1" nevű, hanem a .csv fájl nevét hordozza. Emiatt természetesen a cellákat sem képes megtalálni a makród. Célszerűbb lenne talán nem a nevével, hanem a számával hivatkozni a munkalapra, mert könnyen lehet, hogy az általad használt verzióban ez még másképp működik.
Sok sikert!
Kovács Tibor (Win7x64Prof/W10x64prof: LO6.1.6;
winPenPack/PortableApps: LO3.3.1-6.2.5, AOO4.1.6
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címe elejének szerkesztésével - tedd hozzá: [Megoldva].
Avatar
Zizi64
Globális moderátorok
 
Hozzászólások: 3444
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: csv fájl megnyitása, abból adat ámásolása calc-ba macrov

HozzászólásSzerző: Zizi64 » 2018. december 22., szombat 19:39

...azt aztán végképp nem értem, hogy a .csv fájlban mit is keresel a D5 cellában..

Végül is a kódodból nem derül ki számomra, hogy vajon az egész .csv táblát akarod-e beemelni az .ods fájlba, vagy abból csak egy-két adatot...
Sok sikert!
Kovács Tibor (Win7x64Prof/W10x64prof: LO6.1.6;
winPenPack/PortableApps: LO3.3.1-6.2.5, AOO4.1.6
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címe elejének szerkesztésével - tedd hozzá: [Megoldva].
Avatar
Zizi64
Globális moderátorok
 
Hozzászólások: 3444
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: csv fájl megnyitása, abból adat ámásolása calc-ba macrov

HozzászólásSzerző: Zizi64 » 2018. december 22., szombat 20:21

Továbbá, ha egy adott táblázatkezelő dokumentum adott munkalapjának adott cellájától lekéred a címét, akkor az az objektum már nm fogja tartalmatni a dokumentum URL-jét, emiatt landol nálad ugyanabban a dokumentumban a másolt adat.:
Kód: Egész kijelölése   KinyitásÖsszecsukás
oRangeAddress = csv_adat.getCellRangeByName("C3").getRangeAddress()  'csv fájl munkalap: csv_adat
xray oRangeAddress
oCellAddress  = Sheet.getCellRangeByName("A4").getCellAddress()  'makro-s doksi: Sheet
xray oCellAddress


Ezt az Xray object inspection kiterjesztéssel ellenőrizheted. Ha sokat kell programoznod az Open/LibreOffice-t, akkor mindenképpen telepíts egy objektum-vizsgálót a létezők közül: Xray, MRI. Ezeket a közösség tagjai készítették.
Sok sikert!
Kovács Tibor (Win7x64Prof/W10x64prof: LO6.1.6;
winPenPack/PortableApps: LO3.3.1-6.2.5, AOO4.1.6
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címe elejének szerkesztésével - tedd hozzá: [Megoldva].
Avatar
Zizi64
Globális moderátorok
 
Hozzászólások: 3444
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest


Vissza: Calc

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég

cron