Maike: MySQL Daten in Excel-Datei exportieren

Hallo,

ich habe in php ein Script geschrieben, dass Daten aus einer MySQL Tabelle ausliest, mit Semikolon trennt und anschließend als .xls Datei abspeichert. Das funktioniert soweit auch ganz gut. Ich kann die Datei auch in Excel öffen.

Das einzige Problem ist, dass Excel führende Nullen entfernt. Wenn  ich die Daten allerdings in eine .txt Datei exportiere und dann in Excel öffne, kann ich beim Importieren für die einzelnen Spalten "Text" einstellen, sodass die führenden Nullen bleiben.

Leider brauche ich die Excel Datei direkt als .xls, weil die Daten per Email verschickt werden und ein bestimmtes Format haben müssen.

Kann mir jemand sagen, wie ich das vielleicht anstellen könnte? Vielleicht gibt es ja auch einen viel einfacheren Weg die Daten zu exportieren.

Danke für jede Hilfe,

Gruß Maike

  1. Hi,

    ich habe in php ein Script geschrieben, dass Daten aus einer MySQL Tabelle ausliest, mit Semikolon trennt und anschließend als .xls Datei abspeichert. Das funktioniert soweit auch ganz gut. Ich kann die Datei auch in Excel öffen.

    Hm - .xls ist üblicherweise das Excel-interne Speicherformat, nicht semikolon-separierte Werte ...

    Das einzige Problem ist, dass Excel führende Nullen entfernt.

    Hast Du die Zahlenwerte in "" gesetzt?

    Kann mir jemand sagen, wie ich das vielleicht anstellen könnte? Vielleicht gibt es ja auch einen viel einfacheren Weg die Daten zu exportieren.

    Ggf. Excel per ODBC ansprechen und damit ein wirkliches .xls erzeugen (frag mich aber nicht nach Details)

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    http://www.schreinerei-waechter.de/
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hallo,

      Hm - .xls ist üblicherweise das Excel-interne Speicherformat, nicht semikolon-separierte Werte ...

      Sorry, ich meinte Tab, hab die Werte durch Tab getrennt, also \t

      Hast Du die Zahlenwerte in "" gesetzt?

      Ja, das bringt auch nichts.

      Trotzdem danke für deine Antwort.

      Maike

      1. Hi,

        Hm - .xls ist üblicherweise das Excel-interne Speicherformat, nicht semikolon-separierte Werte ...
        Sorry, ich meinte Tab, hab die Werte durch Tab getrennt, also \t

        .xls ist auch nicht tab-getrennt ...

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        http://www.schreinerei-waechter.de/
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. .xls ist auch nicht tab-getrennt ...

          hmm, dann weiß ich auch nicht wie ich das anstellen soll...

    2. Hallo,

      Ggf. Excel per ODBC ansprechen und damit ein wirkliches .xls erzeugen (frag mich aber nicht nach Details)

      Für alle, die es interessiert, es gibt eine weitere Möglichkeit, die ich mal genutzt habe. Folgende HTML-Datei:

      <HTML>
      <HEAD>
      <TITLE>Anschriften</TITLE>
      </HEAD>
      <BODY>
      <Table border="1">
      <COLGROUP>
      <COL>
      <COL>
      <COL STYLE="vnd.ms-excel.numberformat:@">
      <COL>
      <COL STYLE="vnd.ms-excel.numberformat:#.###,00">
      </COLGROUP>
      <TR>
      <TD>Stra&szlig;e</TD>
      <TD>Nr</TD>
      <TD>PLZ</TD>
      <TD>Ort</TD>
      <TD>Betrag</TD>
      </TR>
      <TR>
      <TD>Feldweg</TD>
      <TD>12</TD>
      <TD>03044</TD>
      <TD>Cottbus</TD>
      <TD>2500</TD>
      </TR>
      </Table>
      </BODY>
      </HTML>

      kann mit EXCEL über Datei-Öffnen geöffnet werden und enthält(übergibt) die entsprechenden Zahlenformate.

      viele Grüße

      Axel

  2. hi,

    ich habe in php ein Script geschrieben, dass Daten aus einer MySQL Tabelle ausliest, mit Semikolon trennt und anschließend als .xls Datei abspeichert.

    warum .xls?
    standardendung für dieses datenformat ist eigentlich .csv.
    und wirkliche .xls-dateien sind auch ganz anders aufgebaut IIRC, du verlässt dich also lediglich darauf, dass excel hier das eigentliche CSV-format automatisch erkennt.

    Das einzige Problem ist, dass Excel führende Nullen entfernt. [...]
    Kann mir jemand sagen, wie ich das vielleicht anstellen könnte?

    evtl. zahlenfelder mal mit anführungszeichen einkleiden, um sie explizit als text zu kennzeichnen ...?

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. Hallo,

      warum .xls?
      standardendung für dieses datenformat ist eigentlich .csv.
      und wirkliche .xls-dateien sind auch ganz anders aufgebaut IIRC, du verlässt dich also lediglich darauf, dass excel hier das eigentliche CSV-format automatisch erkennt.

      Ja das weiß ich auch. Aber die Daten sollen als .xls Datei verschickt werden. Es handelt sich hierbei um Produktdaten, die an Kelkoo gesendet werden sollen. Kelkoo hat als Musterdatei eine .xls Datei geschickt, die man mit den eigenen Produktdaten füllen und wieder zurück senden soll.... ?!

      evtl. zahlenfelder mal mit anführungszeichen einkleiden, um sie explizit als text zu kennzeichnen ...?

      Hab ich auch schon versucht...

      Vielleicht kann man die Daten aber auch als .cvs Datei an Kelkoo senden... müsste ich mal ausprobieren, was die dann sagen!

      Danke für deine Hilfe,

      Maike

  3. Hi,

    Das einzige Problem ist, dass Excel führende Nullen entfernt. Wenn  ich die Daten allerdings in eine .txt Datei exportiere und dann in Excel öffne, kann ich beim Importieren für die einzelnen Spalten "Text" einstellen, sodass die führenden Nullen bleiben.

    wenn das mit dem Format nicht klappt, kannst Du auch mal versuchen, vor  jede Zahl ein Hochkomma (') zu setzen.

    Viele Grüße

    Jörg