Thread View: pl.comp.lang.perl
6 messages
6 total messages
Started by newmefin
Tue, 12 Oct 2010 20:00
Z Excela do Perla
Author: newmefin
Date: Tue, 12 Oct 2010 20:00
Date: Tue, 12 Oct 2010 20:00
16 lines
1491 bytes
1491 bytes
Witam,
Dopiero zaczynam swoją przygodę z Perlem i mam pytanko.
Mam zbiór plików w Excelu z rozszerzeniem csv (w każdym po dwie
kolumny z danymi). Chodzi o to, żeby z tych plików stworzyć, jako
wynik plik o strukturze tablicy rozproszonej:
%nazwa=(
nazwa pliku bez rozszerzenia=>{
pole 1 (kolumna A) => 'informacja (kolumna B)',
pole 2 (kolumna A) => 'informacja (kolumna B)',
.
.
.
},
);
Czy możecie coś doradzić?
Re: Z Excela do Perla
Author: Bartosz Feński aka fEnIo
Date: Tue, 12 Oct 2010 20:42
Date: Tue, 12 Oct 2010 20:42
35 lines
2121 bytes
2121 bytes
W artykule newmefin napisał(a):
> Dopiero zaczynam swoją przygodę z Perlem i mam pytanko.
> Mam zbiór plików w Excelu z rozszerzeniem csv (w każdym po dwie
> kolumny z danymi). Chodzi o to, żeby z tych plików stworzyć, jako
> wynik plik o strukturze tablicy rozproszonej:
> %nazwa=(
> nazwa pliku bez rozszerzenia=>{
> pole 1 (kolumna A) => 'informacja (kolumna B)',
> pole 2 (kolumna A) => 'informacja (kolumna B)',
> .
> .
> .
> },
>);
> Czy możecie coś doradzić?
Doradzam chociaż spróbowania własnych sił. Gwarantuję Ci (z autopsji), że
jak coś już spłodzisz i nawet będzie to marnej jakości i dalekie od
poprawnego rozwiązania to dużo przychylniej grupa na to spojrzy.
Na razie jesteś na etapie "Rozpoczynam naukę krawiectwa, uszyjecie coś dla
mnie?", a sęk w tym byś zaczął od "Wykroiłem takie coś by zachwycić swoją
byłą, ale zupełnie mi tego zszycie do kupy nie wychodzi".
pozdr,
fEnIo
--
,''`. Bartosz Fenski | mailto:fenio@debian.org | pgp:0x13fefc40 | irc:fEnIo
: :' : 32-050 Skawina - Glowackiego 3/15 - malopolskie v. - Poland
`. `' phone:+48602383548 | proud Debian maintainer and user
`- http://fenski.pl | xmpp:fenio@jabber.org | rlu:172001
Re: Z Excela do Perla
Author: neo77
Date: Wed, 13 Oct 2010 07:54
Date: Wed, 13 Oct 2010 07:54
40 lines
2438 bytes
2438 bytes
On 12 Paź, 22:00, newmefin <newme...@gmail.com> wrote:
> Witam,
>
> Dopiero zaczynam swoją przygodę z Perlem i mam pytanko.
> Mam zbiór plików w Excelu z rozszerzeniem csv (w każdym po dwie
> kolumny z danymi). Chodzi o to, żeby z tych plików stworzyć, jako
> wynik plik o strukturze tablicy rozproszonej:
> %nazwa=(
> nazwa pliku bez rozszerzenia=>{
> pole 1 (kolumna A) => 'informacja (kolumna B)',
> pole 2 (kolumna A) => 'informacja (kolumna B)',
> .
> .
> .},
>
> );
> Czy możecie coś doradzić?
Zastanow sie co chcesz zrobic?
masz kilka plikow z ktorych chcesz wczytac dane, to raz # patrz glob
albo operator <>
dane beda umieszczone w hashu:
klucz (nazwa pliku bez r.) => hash z zawatoscia, # patrz
s///
to dwa
przy wczytywaniu danych z pliku chcesz zeby zostaly zapisane do hasha
kolumna A => kolumna B, to trzy # patrz split, operator <>
pliki sa z csvami excela wiec zgodne ze specifikacja csv czyli
separatorem jest \t, to cztery
teraz powinno byc latwiej, ktory z tych etapow potrafisz wykonac
samodzielnie a z ktorym ci pomoc?
pozdrawiam
pawel
Re: Z Excela do Perla
Author: Szymon Sokół
Date: Wed, 13 Oct 2010 21:53
Date: Wed, 13 Oct 2010 21:53
15 lines
1864 bytes
1864 bytes
On Wed, 13 Oct 2010 00:54:17 -0700 (PDT), neo77 wrote: > pliki sa z csvami excela wiec zgodne ze specifikacja csv czyli > separatorem jest \t, to cztery Ahem. CSV to skrót od Comma Separated Values. To mówisz, że comma to \t? ;-) (a np. OO Calc przy poleceniu zapisania CSV pozwala wybrać separator z zestawu: \t, spacja, przecinek, średnik, dwukropek... ewentualnie zgoła własny "custom separator") -- Szymon Sokół (SS316-RIPE) -- Network Manager B Computer Center, AGH - University of Science and Technology, Cracow, Poland O http://home.agh.edu.pl/szymon/ PGP key id: RSA: 0x2ABE016B, DSS: 0xF9289982 F Free speech includes the right not to listen, if not interested -- Heinlein H
Re: Z Excela do Perla
Author: neo77
Date: Thu, 14 Oct 2010 09:22
Date: Thu, 14 Oct 2010 09:22
22 lines
2257 bytes
2257 bytes
On 13 Paź, 23:53, Szymon Sokół <szy...@bastard.operator.from.hell.pl> wrote: > On Wed, 13 Oct 2010 00:54:17 -0700 (PDT), neo77 wrote: > > pliki sa z csvami excela wiec zgodne ze specifikacja csv czyli > > separatorem jest \t, to cztery > > Ahem. CSV to skrót od Comma Separated Values. To mówisz, że comma to \t? ;-) > (a np. OO Calc przy poleceniu zapisania CSV pozwala wybrać separator z > zestawu: \t, spacja, przecinek, średnik, dwukropek... ewentualnie zgoła > własny "custom separator") > > -- > Szymon Sokół (SS316-RIPE) -- Network Manager B > Computer Center, AGH - University of Science and Technology, Cracow, Poland Ohttp://home.agh.edu.pl/szymon/PGP key id: RSA: 0x2ABE016B, DSS: 0xF9289982 F > Free speech includes the right not to listen, if not interested -- Heinlein H Racja, specyfikacja csv i sama nazwa mowia inaczej, nie zmienia to jednak idei rozwiazania problemu a tylko jej szczegoly pozdrawiam
Re: Z Excela do Perla
Author: felippe
Date: Sat, 16 Oct 2010 09:45
Date: Sat, 16 Oct 2010 09:45
33 lines
2576 bytes
2576 bytes
Ja do czytania CSV używam DBD::CSV
Podpina ci plik CSV tak jak bazę danych. Do tego definiujesz co jest
separatorem danych itd... Jedyna uwaga z mojej strony - jak zapisujesz
Excela jako CSV dawaj kodowanie UTF8 - najwygodniej.
Poniżej jak wygląda takie podłączenie z wszystkimi możliwymi
atrybutami - jedyna uwaga - coś u mnie nie działało definiowanie
rozszerzenia, także nie używam tego atrybutu, a przy select podaję
nazwę normalnie z rozszerzeniem (select * from tabela.csv)
# specify most possible flags via driver flags
$dbh = DBI->connect ("dbi:CSV:", undef, undef, {
f_schema => undef,
f_dir => "data",
f_ext => ".csv/r",
f_lock => 2,
f_encoding => "utf8",
csv_eol => "\r\n",
csv_sep_char => ",",
csv_quote_char => '"',
csv_escape_char => '"',
csv_class => "Text::CSV_XS",
csv_null => 1,
csv_tables => {
info => { file => "info.csv" }
},
RaiseError => 1,
PrintError => 1,
FetchHashKeyName => "NAME_lc",
}) or die $DBI::errstr;
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads