Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ?odczyt plików excela przy użyciu php?
statek
post
Post #1





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 2.06.2009

Ostrzeżenie: (0%)
-----


Witam,
czy ma ktos pomysł jak odczytać pliki excela i zapisać je jako zwykły tekst, nie wykorzystując przy tym samej aplikacji ms office? Po prostu mam pełno plików excela z danymi i chciałbym je wszystkie zapisać jako tekstowe. Ręczne otwieranie plików raczej nie wchodzi w grę. Jakieś pomysły, sugestie?

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


googlowałeś (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
http://www.google.pl/search?hl=pl&q=od...mp;aq=f&oq=
phpexcelreader
http://code.google.com/p/php-excel-reader/
phpexcel
http://sourceforge.net/projects/phpexcelreader
Go to the top of the page
+Quote Post
em1X
post
Post #3





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

Ostrzeżenie: (0%)
-----


http://lmgtfy.com/?q=php+excel+read
Go to the top of the page
+Quote Post
statek
post
Post #4





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 2.06.2009

Ostrzeżenie: (0%)
-----


googlowalem, ale tego nie znalazłem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Głupia sprawa, ja nie potrzebuje aż takiego bajeranckiego odczytu. Wystarczyłoby odczytanie niepustych komórek w niepsutych wierszach i zapisanie tego jako plik textowy (nawet jako jeden string bez separatorów). A te narzędzia konwertują wszystko. Może wiecie jak odczytać taki plik excelowy, jak się do tego zabrać - z chęcią spróbowałbym napisać taką prostą funkcje?

Dzięki ogromne. Proszę powiedzcie mi jeszcze jak wymusić '+' w wartości zmiennej w GET. Jak dam link: index.php?zm=ala+basia&zm2=ala+ to potem przy odczycie + jest zmieniany na spacje. Próbowałem kodować/dekodowac url i nic mi nie wyszło. Jak to zrobić? Pozdrawiam.
edit
Użyłem rawurlencode przy tworzeniu odnośnika. I teraz w tablicy GET wartości są poprawne ale w adresie nie mam plusów tylko %2B. Co zrobić aby jednocześnie plus był w linku, w adresie wyświetlanym przez przeglądarkę i w tablicy GET?

Ślicznie proszę, podajcie jakąś wskazówkę, jak to zrobić, jak się dobrać do pliku binarnego .xls

Ten post edytował statek 22.06.2009, 12:39:48
Go to the top of the page
+Quote Post
Louner
post
Post #5





Grupa: Zarejestrowani
Postów: 99
Pomógł: 5
Dołączył: 20.06.2005
Skąd: Bielsk Podlaski

Ostrzeżenie: (0%)
-----


Ja bym zapisał sobie arkusz z excela do formatu CSV, dostaniesz wtedy plik z bardzo przyjazną do importu zawartością ( wszyskie kolumny oddzielone średnikami, wiersze enterami ). Wtedy wystarczy tylko zwykła funkcja 'explode'.

Co do GET, pobieraj dane z plusem, a potem możesz wstawić do swojego skryptu PHP coś takiego:
  1. <?php
  2. foreach( $_GET as $key => $value ) {
  3.   $_GET[$key] = str_replace("+"," ",$value); // zamienia plusy na spacje
  4. }
  5. ?>
Go to the top of the page
+Quote Post
statek
post
Post #6





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 2.06.2009

Ostrzeżenie: (0%)
-----


Louner dzięki za wskazówkę. Wiem, że mogę zapisywać pliki xls jako csv ale, wtedy muszę każdy plik excela otworzyć w excelu aby dokonać takiego zapisu. Myślałem o tym aby sięgać do plików xls bez excela. Jednak po zastanowieniu i sprawdzeniu kilku faktów, rezygnuję z tego zamiaru. Nowa wersja excela zapisuje ponoć pliki przy pomocy zwykłych znaczników tekstowych - wreszcie jakieś sensowne rozwiązanie od ms:) Tak więc 'za chwilę' import binarnych xls straci rację bytu.

Co do GET, to nie działa takie rozwiązanie już sprawdzałem. Jeśli w adresie mam '+', to w tablicy GET mam spacje i nie mam co zamieniać:( Jakieś inne rozwiązanie?

Proszę zerknij również na: http://forum.php.pl/index.php?showtopic=123800&hl=
nie przychodzi mi do głowy prostsze rozwiązanie, a moje jest bardzo nieefektywne.

Pozdrawiam.
PS
Czy znasz jakiś edytor plików tekstowych (koniecznie z obsługą utf-8), który pozwala edytować kolumny: wklejać/zaznaczać tekst kolumnami?
Go to the top of the page
+Quote Post
Louner
post
Post #7





Grupa: Zarejestrowani
Postów: 99
Pomógł: 5
Dołączył: 20.06.2005
Skąd: Bielsk Podlaski

Ostrzeżenie: (0%)
-----


Sorry, źle zrozumiałem o co Ci chodziło z $_GET, żeby przkazać plusa przez GET trzeba podać w adresie %2B zamiast '+', na przykład:
Kod
test.php?dzialanie=piec%2Bsiedem


da w tablicy $_GET
  1. <?php
  2. Array ( [dzialanie] => piec+siedem )
  3. ?>


Ten sposób działa, bo 2B to '+' w tabeli ASCII ( http://www.asciitable.com/ ).

Nie znam takiego edytora.
Go to the top of the page
+Quote Post
statek
post
Post #8





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 2.06.2009

Ostrzeżenie: (0%)
-----


A da się podać w adresie '+' i jednocześnie odczytać go jako '+'? Tak, żeby w adresie i w tablicy GET był plus?
Go to the top of the page
+Quote Post
blooregard
post
Post #9


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat
A da się podać w adresie '+' i jednocześnie odczytać go jako '+'? Tak, żeby w adresie i w tablicy GET był plus?

Nie da się. Sam możesz sobie sprawdzić:
  1. index.php:
  2. <?php
  3. var_dump($_GET);
  4. ?>


Po wywołanu:
localhost/index.php?a=b+c

otrzymujesz w wyniku:
Kod
array
  'a' => string 'b  c' (length=4)

czyli w miejscu znaku + z url-a masz puste miejsce (spację)

Wystarczy sprawdzić.
Go to the top of the page
+Quote Post
statek
post
Post #10





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 2.06.2009

Ostrzeżenie: (0%)
-----


blooregard dzięki za konkretną odpowiedź. Ja to wszystko sprawdziłem, o czym pisałeś. A pytałem, bo myślałem, że jest jakaś funkcja sprytna, której nie znalazłem w manualu, która na to pozwala. Jedyne roziązanie jakie mi przyszło do głowy do zamiana w stringu adresu (otrzymanym z GET) spacji na plus. Wtedy by mi działąo wszystko jak chciałem, ale czy to niesie z sobą jakieś negatywne konsekwencje? Coś o czym jeszcze nie wiem, a się zemści na mnie:)?

Pozdrawiam.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 22:45