» »

Uvoz txt datoteke v excel

Uvoz txt datoteke v excel

sebavet ::

Imam podatke v txt datoteki, ki bi jih rad uvozil v excel. Podatki so v txt datoteki ločeni s podpičji. V vsako vrstico excelovega delavnega zvezka moram vnesti po 8 celic, nato sledi nova vrstica. Ko bi moral začeti vstavljat podatke v novo vrstico podatki v txt datoteki prehod ni posebej označen.

kloko ::

En način je, da pred uvozom v Excel obdelaš txt datoteko, da namesto vsakega osmega podpičja vstaviš znak za novo vrstico. Npr. primer, ki deluje v bash ukazni vrstici:
sed -e's/\(\([^;]*;\)\{7\}[^;]*\);/\1\n/g' datoteka.txt

Seveda bo problem, če so že v osnovi v tej datoteki kakšni prelomi vrstic, potem se moraš najprej znebiti teh...

L.p., Kloko

vorantz ::

podpičja spremeni v vejice, vsako osmo spremeni v newline in spremeni tip datoteke v .csv

samotest ::

Odvisno koliko je tega.

Lahko uvozis in naredis text delimit ali pa replace z newline in imas vse vrednosti ali v eni vrstici ali stolpcu.
Nato naredis v 8 celic v vrstici formule na originalne vrednosti. Te plus 7 praznih nato kopiras v vsako 8 vrstico. Na koncu izbrises prazne vrstice npr s filtrom.

Ce je vec teksta pa z makrom..

vorantz ::

samotest je izjavil:

Odvisno koliko je tega.

Lahko uvozis in naredis text delimit ali pa replace z newline in imas vse vrednosti ali v eni vrstici ali stolpcu.
Nato naredis v 8 celic v vrstici formule na originalne vrednosti. Te plus 7 praznih nato kopiras v vsako 8 vrstico. Na koncu izbrises prazne vrstice npr s filtrom.

Ce je vec teksta pa z makrom..


preveč jajcanja...z mojim načinom samo odpreš csv z excelom in save as .xlsx in imaš

black ice ::

Poslušajte vorantza in si ne delajte sivih las po nepotrebnem. :>

SeMiNeSanja ::

In zakaj bi spreminjal podpičje v vejice, če lahko v excelu rečeš, da je tvoj delimiter podpičje ?!?

Ni pa jasno, kaj pomeni OP-u "v txt datoteki prehod ni posebej označen" - so podatki nanizani kot jara kača brez vsakega newline-a? Je tam, kjer bi moral biti pomik v novo vrstico tudi podpičje, ali po možnosti zgolj presledek?
Za pravilen uvoz podatkov bi moral imeti tudi v txt datoteki podatke v vrsticah in ne kot neskončni niz. Lahko skopiraš primer iz txt datoteke?

samotest ::

vorantz je izjavil:

samotest je izjavil:

Odvisno koliko je tega.

Lahko uvozis in naredis text delimit ali pa replace z newline in imas vse vrednosti ali v eni vrstici ali stolpcu.
Nato naredis v 8 celic v vrstici formule na originalne vrednosti. Te plus 7 praznih nato kopiras v vsako 8 vrstico. Na koncu izbrises prazne vrstice npr s filtrom.

Ce je vec teksta pa z makrom..


preveč jajcanja...z mojim načinom samo odpreš csv z excelom in save as .xlsx in imaš


Kot zapisano, ce je tega veliko, ni smiselno vsako 8 podpicje spreminjat v newline v txt datoteki.. Razen ce poznas editor, ki to naredi po vzorcu?

Alternativa je sed za urejanje text datoteke.. Ce ga OP pozna.

Ce hoce vse urediti znotraj Excela, velja moj predlog.

SeMiNeSanja ::

A text editor with Regexp support is your friend....

amacar ::

Nekaj takega
Excel: https://www.dropbox.com/s/u44xev0wvwjgm...
Testni fajl: https://www.dropbox.com/s/8fcf8afc8jvdg...

Sub macro()

Dim stevec As Integer
Dim prebranFile, polje() As String

prebranFile = Application.GetOpenFilename(Title:="Izberi fajl")
Open prebranFile For Input As #1
prebranFile = Input$(LOF(1), 1)
Close #1

polje = Split(prebranFile, ";")

For stevec = LBound(polje) To UBound(polje)
    Cells(Int(stevec / 8) + 1, stevec Mod 8 + 1) = polje(stevec)
Next

End Sub

sebavet ::

Ok, da bo stvar malo bolj razjasnjena, datoteka txt je še bolj nestrukturirana kot bi bilo treba, torej zgeda tako:
podatek1;podatek2;;;podatek5;podatek6;podatek7;podatek8
podatek1;;podatek3;
podatek4;;;;podatek8
ali pa:
podatek1;podatek2;podatek3;podatek4;
;podatek6;podatek7;;

V glavnem nobenega reda sploh!!

Zgodovina sprememb…

  • spremenil: sebavet ()

SeMiNeSanja ::

S čem za vraga pa kreiraš tako zmedene podatke?

Pri takšni zmešnjavi, ko imaš newline kar v sredini sloga, boš moral kar krepko zavihati rokave, da boš te podatke uredil.

Koliko pa jih je? 100? 1000? 2 miljona?

S spodobnim urejevalnikom, ki obvlada Regexp search&replace se da nekaj pomagati, ampak moraš zadevo najprej obvladati....

So ti podatki export iz nečesa? Se da ta export ponoviti na način, da bo kreiral lepše zloge?

Glede na to, da ti nekatere zloge 'prekine' v sredini in nadaljuje v naslednji vrstici, bi še preveril, če je to zgolj LF ali je notri CR/LF. Morda bi se dalo kaj popraviti, če je zgolj LF...

sebavet ::

Datoteko sem dobil, moja naloga je da jo spravim v excelove celice po prej opisanem postopku. Na roke je ne morem urejat, ker je podatkov preveč:( do exporta nimam dostopa. Bom verjetno moral napisat kak makro..

Zgodovina sprememb…

  • spremenil: sebavet ()

Invictus ::

sebavet je izjavil:

Ok, da bo stvar malo bolj razjasnjena, datoteka txt je še bolj nestrukturirana kot bi bilo treba, torej zgeda tako:
podatek1;podatek2;;;podatek5;podatek6;podatek7;podatek8
podatek1;;podatek3;
podatek4;;;;podatek8
ali pa:
podatek1;podatek2;podatek3;podatek4;
;podatek6;podatek7;;

V glavnem nobenega reda sploh!!

Tole boš pa težko drugače rešil kot na roke.

Ali pa zgeneriraj pravilen CSV še enkrat.
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

sebavet ::

Oprosti, kaj je csv? Kaj pa amacarjeva rešitev?

Zgodovina sprememb…

  • spremenil: sebavet ()

SeMiNeSanja ::

"Na roke" ne pomeni zdaj, da se po celi datoteki sprehajaj in popravljaj vrstico po vrstico.

Uporabiš nek pameten text editor, ki podpira Regexp in 'na roke' napišeš ustrezne search&replace ukaze, da se datoteka 'pošlihta'. Če Regexp ne obvladaš, bo to sicer kar težavna naloga....

CSV je "Comma Separated Values" - se pravi txt datoteka, ki vsebuje podatke, ki so med seboj ločeni z 'vejico', pričemer je vejica lajhko tudi kakšno drugo ločilo, najčešče podpičje, saj se tako izogneš zmešnjavi zaradi vejic v decimalnih številih.

nejclp ::

podatek1;podatek2;;;podatek5;podatek6;podatek7;podatek8
podatek1;;podatek3;podatek4;;;;podatek8

Mislm, OK, jaz kle ne vidim zmešnjave,podatek je med dvema dvopičjema, kjer ni podatka sta samo dve dvopičji, brez podatka.

SeMiNeSanja ::

nejclp je izjavil:

podatek1;podatek2;;;podatek5;podatek6;podatek7;podatek8
podatek1;;podatek3;podatek4;;;;podatek8

Mislm, OK, jaz kle ne vidim zmešnjave,podatek je med dvema dvopičjema, kjer ni podatka sta samo dve dvopičji, brez podatka.

Buffer overflow? Dve vrstici naprej že ne vidiš več?

nejclp ::

SeMiNeSanja je izjavil:

nejclp je izjavil:

podatek1;podatek2;;;podatek5;podatek6;podatek7;podatek8
podatek1;;podatek3;podatek4;;;;podatek8

Mislm, OK, jaz kle ne vidim zmešnjave,podatek je med dvema dvopičjema, kjer ni podatka sta samo dve dvopičji, brez podatka.

Buffer overflow? Dve vrstici naprej že ne vidiš več?

Ja bemti no, očitno res ne vidim, daj mi pojasni?
podatek1;podatek2;;;podatek5;podatek6;podatek7;podatek8
podatek1;;podatek3;podatek4;;;;podatek8
ali pa: podatek1;podatek2;podatek3;podatek4;;podatek6;podatek7;;

Lepš ne bi moglo bit.

Zgodovina sprememb…

  • spremenilo: nejclp ()

Invictus ::

podatek1;;podatek3;
podatek4;;;;podatek8

A tole ti nič ne pove?

Data blindness?
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

nejclp ::

Očitno res, ne vem kaj je problem? Prelom vrstice?

k--p ::

Nimaš 8 podpičij v vsaki vrstici, drugo jaz ne vidim.

Zgodovina sprememb…

  • spremenilo: k--p ()

b3D_950 ::

Podpičja zamenjaš z breakom?

podatek1;podatek2;;;podatek5;podatek6;podatek7;podatek8
podatek1;;podatek3;podatek4;;;;podatek8


v

podatek1
podatek2


podatek5
podatek6
podatek7
podatek8
podatek1

podatek3
podatek4



podatek8
Zdaj ko je mir, jemo samo krompir.

nejclp ::

k--p je izjavil:

Nimaš 8 podpičij v vsaki vrstici, drugo jaz ne vidim.

To je pomoje bolj typo sebaveta. Tudi če je problem ta, da med podatek8 in podatek1 ni podpičja (označeno mastno),očitno tam je nekaj, odstavek, ročni prelom vrstice, al pa vsaj presledek. se pač da found/replace.
podatek1;podatek2;;;podatek5;podatek6;podatek7;podatek8
podatek1
;;podatek3;podatek4;;;;podatek8

amacar ::

Vsak newline s ; zamenjas, potem uporabis mojo kodo, ampak ne izpisujes praznih elementov.
Ko pridem na komp lahko popravim mojo kodo.

samotest ::

V editorju npr Notepad++
- izbriši vse newline (Replace, Search mode extended, Find "\n", Replace )
- nato naredi replace podpičij z newline-i

Prenesi v Excel v stolpec A.

Izbriši prazne vrstice (http://www.exceltrick.com/how_to/delete...

- vneseš b1=a2, c1=a3, .. i1=a8
- označiš celice b1..i8 in s potegom na črn kvadratek spodaj desno povlečeš do konca vrednosti oz. do konca tabele dol
- ponoviš izbris praznih vrstic na glede na prazne vrednosti v stolpcu B

over&out

111111111111 ::

Mater, Shamo me je prehitel.

+1 k njegovem odgovoru. Samo v Notepad++ preveri ali je CRLF ali CR, predno narediš replace.

SeMiNeSanja ::



Ta čas, ko se tle filozofira bi jaz mel te podatke že 5x pošlihtane....

amacar ::

S temle macrom bi šlo

excel: https://www.dropbox.com/s/u44xev0wvwjgm...
vhod.txt: https://www.dropbox.com/s/8fcf8afc8jvdg...

Sub macro()

Dim stevec, vnesiV As Integer
Dim prebranFile, polje() As String

prebranFile = Application.GetOpenFilename(Title:="Izberi fajl")
Open prebranFile For Input As #1
prebranFile = Input$(LOF(1), 1)
Close #1
prebranFile = Replace(prebranFile, Chr(10), ";")
prebranFile = Replace(prebranFile, Chr(13), ";")
polje = Split(prebranFile, ";")

vnesiV = 0
For stevec = 0 To UBound(polje)
    If Len(polje(stevec)) > 0 Then
        Cells(Int(vnesiV / 8) + 1, vnesiV Mod 8 + 1) = polje(stevec)
        vnesiV = vnesiV + 1
    End If
Next

End Sub

Zgodovina sprememb…

  • spremenil: amacar ()

sebavet ::

super, hvala, rešeno :) z macrom


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[javascript] XML problem

Oddelek: Programiranje
132036 (1876) Kocka
»

Popravek pravil

Oddelek: Novice / Obvestila
267811 (5956) Mesko89
»

C++(bin file) vprašanje

Oddelek: Programiranje
121242 (1120) technolog
»

Procentualna tabela s fiksno glavo

Oddelek: Programiranje
71616 (1500) alen1
»

PHP - Register form

Oddelek: Izdelava spletišč
241726 (1354) roli

Več podobnih tem