Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: excel --> mysql
Forum PHP.pl > Forum > Bazy danych > MySQL
Arek00
na forum znalazłem kilka opisów jak to zrobić poprzez php ale jestem początkujący i nie mogę sobie z tym poradzić. w sieci znalazłem gotowe programy które z excela importują do mysql ale wszystkie były płatne... czy ktoś zna taki darmowy program?

chodzi mi o coś w tym stylu ale darmowy:

http://www.sqlmanager.net/en/products/mysql/dataimport


ewentualnie czy mogę prosić o opis dla początkującego jak to zrobić za pomocą skryptu?
mhs
Witam,

Podam Ci ogólny schemat jak to zrobić - przynajmniej jeden ze sposobów.

1) Mając dane w excelu możesz wyeksportować je do pliku csv. Rzecz prosta.
2) Plik csv to zwykły plik tekstowy rozdzielony średnikami. Musisz teraz z poziomu php odczytać dany plik (czyli kłania się Ci znajomość obsługi plików w php).
3) Jeżeli to będziesz potrafił następnie musisz:
a) jak już wcześniej napisałem odczytać zawartość pliku linia po linii
cool.gif dokonać rozdzielenia danego wiersza na kolumny (tutaj przychodzi Ci z pomocą średnik jako znak rozdzielający)
c) przygotować sobie zapytanie SQL czyli zwykły INSERT
cool.gif (mając wcześniej nawiązane połączenia z serwerem MySQL) wysłać zapytanie do bazy danych.

Taki jest ogólny przepis na rozwiązanie Twojego problemu. Dokładniejsze informacje znajdziesz w różnych częściach manuala php, kursach on-line. W razie problemów pisz, w miarę możliwości postaram się odpowiedzieć.

PS. Można to zrobić prościej - bez skryptu php. Możesz podobnie jak wcześniej wyeksportować plik do CSV, a następnie z klienta mysql przygotować odpowiednie zapytanie z wykorzystaniem LOAD DATA INFILE.
sobstel
Cytat(mhs @ 2005-11-17 23:45:57)
a) jak już wcześniej napisałem odczytać zawartość pliku linia po linii

ja tylko dodam ze w tym punkcie mozna wykorzystac funkcje fgetcsv" title="Zobacz w manualu php" target="_manual
FiDO
A ja dodam, ze darmowy phpMyAdmin ma funkcje importu z plikow csv (ktore Excel moze wygenerowac).
Arek00
udało mi się zrobić coś takiego:

  1. <?php
  2. $id_polaczenia = mysql_connect("localhost", "root", "asdf");
  3. mysql_select_db("drupal", $id_polaczenia);
  4.  
  5.  
  6. $uchwyt = fopen ("cennik4.csv","r");
  7. while (($data = fgetcsv($uchwyt, 1000, ";")) !== FALSE) {
  8.  
  9. $tablica ="INSERT INTO produkty VALUES ('";
  10. $tablica .= $data[0];
  11. $tablica .= "', '";
  12. $tablica .= $data[1];
  13. $tablica .= "', '";
  14. $tablica .= $data[2];
  15. $tablica .= "', '";
  16. $tablica .= $data[3];
  17. $tablica .= "')";
  18.  
  19. echo $tablica;
  20. echo "<br />n";
  21.  
  22. mysql_query ($tablica);
  23.  
  24. $tablica = "";
  25.  
  26. }
  27. fclose ($uchwyt);
  28. ?>


działa dopóki w którejś komórce excela nie pojawi się przecinek i gdy mam w excelu cudzysłów to wtedy w pliku csv jest cała zawartość komówrki w cudzysłowiu

wpadłem na to żeby przecinki zamienić na kropki a cudzysłowia usunąć zupełnie w excelu ale czy da się je jakoś załadować do bazy?

jak rozwiązać sprawę kodowania znaków bo widzę że jest coś nie tak


w jaki sposób można to zrobić za pomocą phpmyadmin? jak zapisać do której tabeli mają być dodawane wpisy?
strife
Ten program umożliwia Import z Exel'a

polecam.
Arek00
program jest fajny ale nie darmowy....
ennics
tak jak mówił @mhs, do CSV a potem importuj, ale nie baw siętym
w php, szkoda czasu i pamięci operacyjnej,
zobacz mysqlimport.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.