MySQL->Excel

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySQL->Excel

    Hi Mitstreiter,
    habe zur Zeit eine Moeglichkeit zur Verfuegung Daten aus einer MySQL DB manuell (per Mausklick) in eine EXCEL Tabelle zu uebertragen.
    Was ich suche ist eine Moeglichkeit diese Uebertragung automatisch zum ersten eines jeden Monats erledigen zu lassen.

    Bin fuer jede Hilfe empfaenglich und Dankbar

    seeya

    Che

  • #2
    schreib einfach ne HTML-Tabelle als .xsl.
    Wenn du die Datei doppelklickst, wird sie automatisch von Excel importiert und du kannst sie als Excel-Datei speichern.

    Skripts automatisch ausführen lassen kannst du mit Hilfe des Unix/Linux-Tools cron.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Folgende Lösung basiert auf nem Tut das ich irgendwo mal im Web gefunden habe:

      Code:
      function xlsHeader() {                          // erzeugt einen Header, wie man ihn von Exceldateien gewohnt ist
       return pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0); 
      } 
      
      function xlsFooter() {                          // erzeugt das Dateiende einer Exceltabelle
       return pack("ss", 0x0A, 0x00); 
      } 
      
      function xlsWriteNumber($Row, $Col, $Value) {   // schreibt einen numerischen Wert in die Tabelle
       return pack("sssss", 0x203, 14, $Row, $Col, 0x0).pack("d", $Value); 
      } 
      
      function xlsWriteLabel($Row, $Col, $Value ) {   // schreibt einen String in eine Tabellenzelle
       $L = strlen($Value); 
       return pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L).$Value; 
      }
      Diese vier Functions brauchst du, nun noch ein Praxisbeispiel:

      Code:
      function xls_export($id) {                      // bündelt die Funktionen zum kompletten Excelexport
      
          $monat = date("mY");
          $filename = $id."-".$monat.".xls";
          $filepath = "/Logfiles/";     // Dateinamen und -pfad generieren
      
          $fp = fopen($filepath.$filename,"w");               // Datei öffnen
      
          $data = xlsHeader();                                // Excel-Kopf schreiben
          fputs($fp,$data); 
      
          $tbl_logs = $id."_logs";                        // Table-Name zusammenbauen
      
          $result = mysql_query("SELECT * FROM $tbl_logs");   // Logtabelle leechen
      
          $r = 0; $data = "";
          while($row=mysql_fetch_array($result)) {            // jede Zeile einzeln in die Datei schreiben
              for($i=0;$i<count($row); $i++) { 
                  $value = $row[$i];
                  $data = xlsWriteLabel($r,$i,$value);        // und zwar Eintrag für Eintrag
                  fputs($fp,$data);                           // und am Ende die komplette Zeile reinschicken
              } 
              $r++; 
          } 
      
          $data = xlsFooter();                                // Am Ende noch den Excelfooter erzeugen
          fputs($fp,$data); 
          
          fclose($fp);                                        // und die Datei schließen, fertig
          return "Exceldatei für User $id erfolgreich gespeichert<br>";
      }
      Denke das ist genau das was du gesucht hast.

      Gruß Carsten
      CAITS MovieBase für Windows - Filme verwalten mit System!

      CAITS PowerCounter - mehr Statistik gibt es nicht!

      Kommentar

      Lädt...
      X