Login lub e-mail Hasło   

Zrzucenie danych z MySQL do plików .xls (EXCEL)

W sumie można się zastanowić, po co zrzucać do arkusza kalkulacyjnego bazę danych. Odpowiedź brzmi - prościej się ją przegląda. Jak to zrobić, czyli jak zrzucić odpowiednie pola...
Wyświetlenia: 8.396 Zamieszczono 23/05/2006
W sumie można się zastanowić, po co zrzucać do arkusza kalkulacyjnego bazę danych. Odpowiedź brzmi - prościej się ją przegląda.

Jak to zrobić, czyli jak zrzucić odpowiednie pola do pliku excelowskiego? Nic prostszego.

Najlepiej zaprezentować to na przykładzie prostej bazy danych:

TABELA USER


----------------------------------

| ID | IMIE | NAZWISKO | MIASTO  |

==================================

| 1  | JAN  | KOWALSKI | WA-WA   |

----------------------------------

| 2  | ULA  | NOWAK    |  LODZ   |

----------------------------------

| 3  |ROMAN | NAWROCKI |  KOLO   |

----------------------------------


TABELA USER_WIEK


-------------------------------

| ID | DZIEN | MIESIAC | ROK  |

===============================

| 1  |  22   |   06    | 1999 |

-------------------------------

| 2  |  21   |   11    | 1978 |

-------------------------------

| 3  |  19   |   09    | 1907 |

-------------------------------


Chcemy uzyskać plik z następującymi danymi:

| LP | IMIE | NAZWISKO | ROK URODZNIA |

oczywiście przy założeniu, że każda dana jest w osobnej komórce, a następna seria danych jest w następnym wierszu.

Na początek tworzymy tablice z nagłówkami (nazwami kolumn):

<?
  $naglowki = array (
                              'Lp.',
                              'Imię',
                              'Nazwisko',
                              'Rok urodzenia'
                                );

   $nastepny_wiersz = "\n"; // separatory
   $nastepna_kolumna = "\t"; // separatory

?>


następnie odczytujemy odpowiednie dane z bazy danych i tworzymy serię danych (cały wiersz)

<?

function odczyt($id) {

Connect(); // domyślna funkcja do połączenia z bazą

$sql="SELECT * FROM user WHERE id='$id' "; // zapytanie o wszystkie pola z tablicy USER gdzie ID będzie równe $id
$query=mysql_query($sql); // wykonanie zapytania
if (!$user=mysql_fetch_array($query)) echo mysql_error(); //odczyt danych z warunkiem jeżeli sie nie powiedzie

$sql1="SELECT * FROM user WHERE id='$id' ";
$query1=mysql_query($sql1);
if (!$user_wiek=mysql_fetch_array($query1)) echo mysql_error();

  $seria = array (
                              $id,
                              $user['imie'],
                              $user['nazwisko'],
                              $user_wiek['rok'],
                              $następny_wiersz
                                );

return $seria;
}
?>



nasza funkcja ODCZYT($ID) zwraca nam cały wiersz danych, teraz należy umieścić tę funkcję w pętli i gotowe.


<?

if($plik = fopen("moj_plik.xls", "wb")) // utworzenie pliku
                                echo "<br>PLIK ZOSTAŁ UTWORZONY !!! ";
                                else
                                echo "Błąd tworzenia pliku !!!";



                foreach ($naglowki as $pole) { // pętla odczytująca tylko tablice
                         $dane.="$pole $nastepna_kolumna"; // zmienna $dane się zapełnia

                             }



 $sql="SELECT id FROM user";
  $query=mysql_query($sql);

while ($numer=mysql_fetch_array($query))

            foreach (odczyt($numer['id']) as $pole) { // pętla odczytująca tylko tablice
                         $dane.="$pole $nastepna_kolumna"; // zmienna $dane się zapełnia
                        $dane.=$nastepny_wiersz;
                             }


 fputs($plik, $dane); //zapisanie danych w pliku

 fclose($plik); //zamknięcie pliku

?>



Dowolnie zmieniając funkcję ODCZYT() oraz tablicę $naglowki możemy tworzyć dowolnie zapełniony plik XLS.

 


Źródło: 4programmers.net. Treść udostępniona na zasadach licencji Creative Commons Attribution

Podobne artykuły


22
komentarze: 12 | wyświetlenia: 11183
23
komentarze: 5 | wyświetlenia: 1968
17
komentarze: 4 | wyświetlenia: 1928
13
komentarze: 0 | wyświetlenia: 11060
12
komentarze: 10 | wyświetlenia: 7871
12
komentarze: 8 | wyświetlenia: 1602
16
komentarze: 5 | wyświetlenia: 8946
9
komentarze: 0 | wyświetlenia: 2735
49
komentarze: 18 | wyświetlenia: 64715
37
komentarze: 9 | wyświetlenia: 28292
17
komentarze: 4 | wyświetlenia: 13428
5
komentarze: 1 | wyświetlenia: 13153
 
Autor
Dodał do zasobów: Mariusz Żurawek
Artykuł

Powiązane tematy





  jim,  24/07/2006

...na generowanie plików Excela to użycie biblioteki PEAR. Dzięki niej można wygenerować wpełni sformatowane w tabelkach dane.

Polecam artykuł w języku angielskim opisujący bibliotekę PEAR::Spreadsheet_Excel_Writer

...  wyświetl więcej

  Jan T.  (www),  04/05/2007

Możę być artykuł, ale jak napisali poprzednicy to nie jest plik "exela".

PS Ale i tak korzystam :)

Poza tym że mam ms sql to jeszcze niewidzi zmiennej "dane" ale oprucztego tworzy plik xls i wpisóje nagłówki



Dodaj swoją opinię
W trosce o jakość komentarzy wymagamy od użytkowników, aby zalogowali się przed dodaniem komentarza. Jeżeli nie posiadasz jeszcze swojego konta, zarejestruj się. To tylko chwila, a uzyskasz dostęp do dodatkowych możliwości!
 

© 2005-2018 grupa EIOBA. Wrocław, Polska