Registrace  •  FAQ  •  Pravidla fóra  •  Uživatelské blogy  •  PCTuning.cz  •  Hledat  • Přihlášení
 • Pro přihlášení použijte protokol HTTPS, dosavadní HTTP již nemusí dobře fungovat, viz ZDE.

Právě je so 18. listopad 2017, 20:22

Zobrazit příspěvky bez odpovědiZobrazit aktivní témata



Čas je uváděn v UTC + 1 hodina


Odpovědět na téma  [ 8 příspěvků ] 
Autor Zpráva
 Předmět: excel: načtení dat z *.txt
PříspěvekZaslal v: pá 14. červenec 2017, 07:11 
Začátečník
Začátečník
Obrázek uživatele

Založen: 03. červenec 2009
Bydliště: Brno
Nahoru
Zdravím,

vstupní problém:
chtěl bych načíst textový soubor, který obsahuje čísla a jediný oddělovací znak je mezera. Textový soubor nemá jednotné formátování čísel (číslo v řádku 1 může být ve sloupečku 5 a číslo v řádku 2 odpovídající předchozímu číslu může být ve sloupečku 6 - to je způsobeno právě tím, že jediný oddělovač je mezera)

ukázka čísel v *.txt souboru:
Obrázek

Prvním úkolem je načíst *.txt soubor do excelu a pak pomocí maker upravit formátování dat a následně excel převést do CSV (středník)

formátování buněk v sešitu nastavím jako text a v dokumentu pro načtení jako externí reference nastavím všechny sloupečky jako text a po načtení textového dokumentu zruším odkaz na referenci.
Po načtení *.txt dokumentu dostanu:
Obrázek

dobré je, že se vše opravdu všechny čísla načtou jako text (obsah buňky je hned po načtení osazen na levé straně jako text)
trošku horší už je to, že na začátku některých čísel chybí nuly tedy "001" se převede jako "1" atd.

Potřeboval bych poradit, jak správně načíst *.txt soubor, tak aby se nevynechali u některých čísel nuly.

Díky mnohokrát.

_________________
c# Kozel zahradníkem


 Profil  
 Předmět: Re: excel: načtení dat z *.txt
PříspěvekZaslal v: pá 14. červenec 2017, 07:39 
Začátečník
Začátečník
Obrázek uživatele

Založen: 03. červenec 2009
Bydliště: Brno
Nahoru
přikládám ještě ukázku části textového souboru s čísly:

kdyby někdo nechtěl z nějakých důvodů stahovat *zip, tak možno si jen zkopírovat níže uvedená čísla do vlastního textového souboru:
Kód:
518 815 824 876 560 857 867 918 810 1 107 1 117 1 168
532 838 846 903 575 880 888 945 834 1 139 1 147 1 204
585 897 904 964 628 940 947 1 007 893 1 205 1 212 1 272
650 977 982 1 049 693 1 020 1 024 1 092 973 1 300 1 304 1 372
664 998 1 002 1 074 706 1 041 1 044 1 116 994 1 329 1 332 1 404
730 1 074 1 075 1 153 773 1 116 1 118 1 195 1 069 1 412 1 414 1 492
1 084 1 550 1 538 1 681 1 126 1 592 1 581 1 724 1 502 1 968 1 956 2 099
2 036 2 764 2 720 3 005 2 079 2 806 2 762 3 047 2 683 3 410 3 366 3 651


Nemáte oprávnění k prohlížení souborů přiložených k tomuto příspěvku.

_________________
c# Kozel zahradníkem


 Profil  
 Předmět: Re: excel: načtení dat z *.txt
PříspěvekZaslal v: pá 14. červenec 2017, 08:33 
Začátečník
Začátečník
Obrázek uživatele

Založen: 03. červenec 2009
Bydliště: Brno
Nahoru
tohle by mohla být celkem dobrá poznámka, při načítání *.txt souboru používám typ souboru: Windows (ANSI). (zkusím i jiné typy souboru testovat)

_________________
c# Kozel zahradníkem


 Profil  
 Předmět: Re: excel: načtení dat z *.txt
PříspěvekZaslal v: pá 14. červenec 2017, 21:33 
Nováček
Nováček
Obrázek uživatele

Založen: 25. leden 2016
Nahoru
Chápu správně, že mezera je v souboru oddělovač čísel a zároveň oddělovač tisíců?
Naimportoval bych celý řádek vždy do jedné buňky a potom v makru si s celým řádkem pohrál, funkce Split ti rozdělí řádek na jednotlivá čísla a pak si je makrem zase spojíš, jak potřebuješ.
Bude potřeba určit nějaká pravidla, kdy je mezera oddělovač tisíců a kdy oddělovač čísel.
Například něco takového (použito na ukázce):
Kód:
Sub Zpracuj()
  Dim S, R As String
  Dim L() As String
  For i = 1 To 8
    S = Range("A1").Cells(i, 1)
    L = Split(S)
    R = L(0)
    For j = 1 To UBound(L)
      If Len(L(j - 1)) = 1 Then 'když předchozí číslo je délky 1, spoj ho s následujícím (je to pravděpodobně oddělovač tisíců)
        R = R + L(j)
      Else: R = R + ";" + L(j)
      End If
    Next j
    Range("A1").Cells(i, 2) = R
  Next i
End Sub


 Profil  
 Předmět: Re: excel: načtení dat z *.txt
PříspěvekZaslal v: út 25. červenec 2017, 07:16 
Začátečník
Začátečník
Obrázek uživatele

Založen: 03. červenec 2009
Bydliště: Brno
Nahoru
Díky moc. Ušetřilo mi to ranec času.

jinak už jsem přišel také na to, proč se mi převedla některá "čísla" na čísla a ne na text.
Ono totiž import dat z textu do excelu přes Excel průvodce importem textu je uživatelsky fucking friendly.

nejen, že není možné scrolovat myší v tom náhledu dat, ale hlavně tam nejsou zobrazeny všechny sloupečky (facepalm). Takže je třeba ručně myší popojet až dolů pro zobrazení zbytku sloupečků, které je pak možné nastavit jako text a pak je vše už OK. Škoda, že také nejde vybrat všechny sloupečky a provést hromadnou úpravu.

Obrázek

Obrázek

Buď jak buď, s tím makrem to bylo rychlejší a bezpečnější, ještě jednou díky :)

_________________
c# Kozel zahradníkem


 Profil  
 Předmět: Re: excel: načtení dat z *.txt
PříspěvekZaslal v: út 25. červenec 2017, 08:38 
Začátečník
Začátečník

Založen: 30. červen 2005
Bydliště: Brno
Nahoru
To je nejaka skolni uloha? Protoze to makro funguje jen pokud jsou cisla mensi nez 10 000. A navic bude spojovat cisla < 10, ktere jsou za sebou.

_________________
Lenovo Thinkpad X220 (i5 2410M, 12GB RAM, HD3000, 120GB mSata Crucial M4 + HDD 250GB, 12.5" IPS) + Mini Dock Plus Series 3 + 29" LG 29UM65 + 22" Eizo S2202W


 Profil  
 Předmět: Re: excel: načtení dat z *.txt
PříspěvekZaslal v: út 25. červenec 2017, 10:04 
Začátečník
Začátečník
Obrázek uživatele

Založen: 03. červenec 2009
Bydliště: Brno
Nahoru
jsem si makro upravil tak, aby to spojovalo i 10k a doplnil další okrajové podmínky. V tom dokumentu je i nějaká hlavička (String nebo Integer), jiný první sloupec (String) atd. Zase nemůžu chtít, aby někdo řešil celý problém za mě.

Jinak se jedná o rozsáhlé ceníky starších výrobků (mám pouze takto nevhodně v *.txt souboru), které chci přeházet do excelu, v excelu upravit a pak dále s nimi pracovat ve vlastní aplikaci (c#).

_________________
c# Kozel zahradníkem


 Profil  
 Předmět: Re: excel: načtení dat z *.txt
PříspěvekZaslal v: út 25. červenec 2017, 10:14 
Začátečník
Začátečník

Založen: 30. červen 2005
Bydliště: Brno
Nahoru
Jestli sis ho upravil, tak OK. Pak uz me napada jen mozny problem s limitem na radky, do verze 2003 umel Excel jen 65 tisic radku, od verze 2007 uz umi pres milion.

_________________
Lenovo Thinkpad X220 (i5 2410M, 12GB RAM, HD3000, 120GB mSata Crucial M4 + HDD 250GB, 12.5" IPS) + Mini Dock Plus Series 3 + 29" LG 29UM65 + 22" Eizo S2202W


 Profil  
Zobrazit příspěvky za poslední:  Řadit podle  
Odpovědět na téma  [ 8 příspěvků ] 


Čas je uváděn v UTC + 1 hodina


Přejít do sekce:
  

Kdo je přihlášený

Uživatelé procházející si tuto sekci: Žádní registrovaní uživatelé a 1 anonymní


Nemůžete zakládat nová témata v této sekci
Nemůžete odpovídat na příspěvky v této sekci
Nemůžete upravovat své příspěvky v této sekci
Nemůžete mazat své příspěvky v této sekci
Nemůžete připojit přílohy v této sekci

 
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Český překlad - PCT fórum