Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Export podataka u GSI-CSV-TXT format

[es] :: Office :: Excel :: Export podataka u GSI-CSV-TXT format

[ Pregleda: 2418 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

inzenjerija
inzenjer
sta dodje pod ruku
Tutin

Član broj: 336351
Poruke: 48
*.dynamic.isp.telekom.rs.



+1 Profil

icon Export podataka u GSI-CSV-TXT format24.09.2017. u 15:24 - pre 79 meseci
Pozdrav narode.

Imam problem oko exporta podataka iz EXCEL-a u GSI-CSV-TXT formate. Zaista sam ogromno vreme potrosio na ovome guglajuci, dali sam pogrersne termine trazio ili sta je ne znam ali sam se bar potrudio i ovo sam najblize nasao.
Delimicno sam nasao resenje (cod) koje je @Jpeca ponudio @mirjanagb jos davne 2008 godine.
Code:
Code:

Sub TextStreamTest()
    Const ForReading = 1, ForWriting = 2, ForAppending = 3
    Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0 'ASCII ili Unicode
    Dim fs, f, ts
    Dim strFileName As String
    Dim rRange As Range
    Dim rw As Long, cl As Integer
    Dim strRed As String
    
    Application.DisplayAlerts = False
    Set rRange = Application.InputBox(Prompt:= _
    "Zadaj opseg koji treba sacuvati kao text file ", _
    Title:="SPECIFY RANGE", Type:=8)
    On Error GoTo 0
    Application.DisplayAlerts = True
    If rRange Is Nothing Then
        Exit Sub
    Else
       Set fs = CreateObject("Scripting.FileSystemObject")
       strFileName = "C:\TEMP\test1.txt"
       fs.CreateTextFile strFileName      'Create a file
       Set f = fs.GetFile(strFileName)
       Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault)
       ' Petlja za upis u Text file
       For rw = 1 To rRange.Rows.Count
         strRed = rRange.Cells(rw, 1).Text  ' Prva celija iz reda se obavezno upisuje
         For cl = 2 To rRange.Columns.Count ' Ostale celije iz reda
             strRed = strRed & "," & rRange.Cells(rw, cl).Text 'dodavanje zareza za razdvajanje i vrednosti iz celije
         Next cl
         If rw < rRange.Rows.Count Then
            ts.Writeline strRed
         Else
            ts.Write strRed
         End If
      Next rw
      ts.Close
    End If
End Sub

Pokusao sam u kod da ubacim rang celija ciji se red ne menja dok broj celije menja u zavisnosti od popunjenih celija.
Konkretno u mom primeru koji sam poslao za GSI format rang bi bio od R3:R-zadnja ispunjena celija, a za CSV i TXT format rang bi bio T3:T-zadnja ispunjena celija.
Kod koji sam mislio da ubacim je ovaj
Code:
LastRow = .Cells(.Rows.Count, "G").End(xlUp).Row
        
        Range("G7:(LastRow = .Cells(.Rows.Count, "G").End(xlUp).Row)".Select

ali sam se izgubio u svemu ovome

I drugi problem je sto bih hteo da me pita za ime fajla a ne da on sam snimi test1.
Zadnji kod koji se nalazi u samom fajlu pod naslovom TXT trazi rang i pita me za ime fajla mi ne daje zeljeni rezultat

sve ce ovo jednom proci
Prikačeni fajlovi
 
Odgovor na temu

jaskojsako
BIH

Član broj: 141632
Poruke: 224
37.203.68.*



+4 Profil

icon Re: Export podataka u GSI-CSV-TXT format24.09.2017. u 18:11 - pre 79 meseci
Pozdrav
evo kod koji kopira range koji želis u txt format
pogledaj da li ti moze posluziti

Range("R3:R500").Copy ' ovdje zamjeni Range koji želis

'// Start Notepad with focus
Shell "notepad.exe", vbNormalFocus

'// Send the standard CTRL+V. Pastes to the
'// active window (Notepad, hopefully)
SendKeys "^V"
SendKeys "^a"
SendKeys "^c"

'// Back to the top
SendKeys "^{HOME}"

[Ovu poruku je menjao jaskojsako dana 24.09.2017. u 19:42 GMT+1]
Jasmin
 
Odgovor na temu

inzenjerija
inzenjer
sta dodje pod ruku
Tutin

Član broj: 336351
Poruke: 48
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Export podataka u GSI-CSV-TXT format24.09.2017. u 20:54 - pre 79 meseci
Ovaj deo koda odgovara kada je fixsni rang, u mom slucaju rang je promenljiv.

ovaj deo ispod koda nisam siguran o cemu se radi
sve ce ovo jednom proci
 
Odgovor na temu

jaskojsako
BIH

Član broj: 141632
Poruke: 224
37.203.68.*



+4 Profil

icon Re: Export podataka u GSI-CSV-TXT format24.09.2017. u 22:22 - pre 79 meseci
Pozdrav
Nema veze za rang,stavi koji zelis,ako nema podataka nece ni exportovati u txt fajl.
To je SendKeys Method
malo vise o tome:

http://www.contextures.com/excelvbasendkeys.html
ako nije dozvoljeno neka administrator izbrise link






Jasmin
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
89.216.49.*

Sajt: www.gowi.rs


+109 Profil

icon Re: Export podataka u GSI-CSV-TXT format25.09.2017. u 09:01 - pre 79 meseci
Citat:
Pokusao sam u kod da ubacim rang celija ciji se red ne menja dok broj celije menja u zavisnosti od popunjenih celija.

Nisam siguran da sam razumeo - u primeru navodiš kolonu G ali tamo ništa? Ako si želeo da izbegneš da korisnik bira opseg, nego da se uzimaju sve popunjene ćelije iz kolone počevši od reda 3 u tvom primeru
1/ Izbaciš InputBox ...
2/ Ubaciš
Code:
Set rRange = Range("T3", Range("T3").End(xlDown))

za TXTsnimanje, kolona T

Citat:
drugi problem je sto bih hteo da me pita za ime fajla a ne da on sam snimi test1.

U primeru sam ubacio funkciju UserFileName koja otvara dijalog i vraća filename na osnovu unosa korisnika. Umesto
Code:
strFileName = "C:\TEMP\test1.txt"

Pozovi tu funkciju
Code:
 strFileName = UserFileName("txt")


Funkcija proverava da li je nešto izabrano, pa ako nije (Cancel) vraća prazan string, to se proveri u sledećem redu i izlazi iz makroa ako je izabran Cancel u dijalogu
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
Prikačeni fajlovi
 
Odgovor na temu

inzenjerija
inzenjer
sta dodje pod ruku
Tutin

Član broj: 336351
Poruke: 48
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Export podataka u GSI-CSV-TXT format25.09.2017. u 20:39 - pre 79 meseci
Hvala @Jpeca na odgovoru.

Kod koji si mi poslao za pronalazenje opsega vidi kao da su popunjene celije u rasponu od R3:R2000. Istina da su formule u celijama ubacene od R3 do R2000 kao i od T3 do T2000 a formulom je definisano da su prazne uz odredjeni uslov. U mom slucaju bi trebao da automatski vidi opseg od R3:R55 i T3:T55. Zbog toga kada napravi TXT fajl on napravi 1997 redova umesto 53. Kada se otvori TXT, CSV ili GSI fajl od tih 1997 vide se samo 53 reda a ostalo je kao prazno, a ako idemo Ctrl+A odnosno selektujem sve sto ima u fajlu vidimo da ima praznih redaka. Program u koji ubacim fajl prepozna kao prazne redove i pravi problem.

Hvala i tebi @jaskojsako na ovom linku, nisam se do sada sretao sa ovim, zanimljivo je pa kada budem imao slobodnog vremena svakako cu pogledati o cemu se radi.

[Ovu poruku je menjao inzenjerija dana 26.09.2017. u 06:59 GMT+1]
sve ce ovo jednom proci
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
89.216.49.*

Sajt: www.gowi.rs


+109 Profil

icon Re: Export podataka u GSI-CSV-TXT format26.09.2017. u 09:37 - pre 79 meseci
Nisam uspeo da nađem uslov koji bi mogao da se iskoristi za selektovanje nepraznih ćelija (rezultat formule nije prazan string), ali svakako može da se doda uslov u For petlji da kad naiđe na ćeliju sa praznim stringom prekine upis.
Code:
If strRed = "" Then Exit For


Koliko sam video kod tebe se upisuje u fajl samo jedna kolona, pa deo sa više kolona u tom slučaju može da se izbaci (ne smeta ali da ne pravi gužvu). Pogledaj SNIAMNJEUTXT u prilogu
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
Prikačeni fajlovi
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Export podataka u GSI-CSV-TXT format27.09.2017. u 10:34 - pre 79 meseci
Mislim da je tebi osnovni problem ovde, pogrešan izbor alata. Ako sam dobro shvatio, treba neki izlaz (tekstualni) iz AutoCAD da pretvoriš u neki drugi tekst.
Idealan alat za ovo je awk ili njegov GNU pandan gawk

Evo awk programa koji pravi onaj CSV

Code:

BEGIN { FS = "[ \t]+|=" }
/at point/ { row++ ; printf"%d,%.3f,%.3f\n", row, $5, $7}


Pogledaj: http://tpcg.io/1vqqNX

Na onaj tab gde piše Stdin iskopiraj podatke iz Excela iz kolone A, klikni na tab execute i dobiješ obrađene linije.

Da objasnim kako radi ovaj awk program:

BEGIN linija se izvršava pre nego što se procesira bilo koja linija ulaznog teksta. U gornjem primeru, postavlja se varijabla FS koja je za awk specijalna varijabla (field separator) kojom se awku kaže na koji način su odvojena polja u ulaznom tekstu. Ja sam postavio da je FS niz blenkova ili tabulatora koji se ponavljaju 1 ili više puta ili znak "=".

druga linija kaže, kada god nađeš u liniji tekst "at point" uvećaj brojač koji se zove row i ispiši na izlaz po navedenom formatu vrednost te varijable row, vrednost petog polja zaokružen na 3 decimale, vrednost sedmog polja zaokružen na 3 decimale i znak za novui red.

Ako ne znaš awk, učenje traje otprilike 4 sata i imaš alat za ceo život koji ti u programima koji retko prelaze jednu liniju rešavaju gomile problema vezane za obradu teksta.

Slika izvršenja programa:
https://drive.google.com/open?id=0Bz0VyNpyOmQoaDVIZ1cxckpOOUE


[Ovu poruku je menjao djoka_l dana 27.09.2017. u 11:54 GMT+1]
 
Odgovor na temu

inzenjerija
inzenjer
sta dodje pod ruku
Tutin

Član broj: 336351
Poruke: 48
*.static.isp.telekom.rs.



+1 Profil

icon Re: Export podataka u GSI-CSV-TXT format28.09.2017. u 07:39 - pre 79 meseci
Hvala @Jpeca.
Ovaj kod koji si poslao resava problem u potpunosti

Hvala i tebi @djoka_l.
i ovaj AWK resava problem, jedino sto malo oduzima vremena oko selektovanja i kopiranja dok ovo preko Excel-a i macro-a za nijansu lakse bar za moj trenutni problem.
Svakako treba prouciti ovaj alat, bar meni neretko naidje problem oko obrade texta.

Jos jednom hvala svima
sve ce ovo jednom proci
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Export podataka u GSI-CSV-TXT format28.09.2017. u 09:59 - pre 79 meseci
Ovo što sam ti napisao je samo demo. awk možeš lokalno da instaliraš na svom sistemu, bilo kao deo paketa cygwin, ill da ga dobiješ kroz instalaciju gita.

Onda napraviš negde na fajl sistemu cad2cvs.awk i pozoveš ga iz cygwin shell-a ili git bash shella sa

awk -f cad2cvs.awk <ulazniCADfajl >izlazniCVS
 
Odgovor na temu

[es] :: Office :: Excel :: Export podataka u GSI-CSV-TXT format

[ Pregleda: 2418 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.