Verknüpfung mit Datei auf HDD?
RJ45
- php
Hi,
ist es möglich, dass Daten von einer lokalen Festplatte verknüpft und eingelesen werden?
Also folgendes Problem:
Ich habe hier einen Haufen Excel-Tabellen, wo auch einige miteinander verknüpft sind (also Inhalte von einer Datei werden automatisch in eine andere importiert). Jetzt möchte ich eine Datei durch eine MySQL-Datenbank ersetzen.
Ein Teil der Daten soll aber immernoch von einer Excel-Datei auf der Festplatte gelesen werden. Die Datei hat immer den gleichen Namen und liegt immer am selben Ort.
Ist das irgendwie möglich (evtl. auch mit JS?)?
Am besten wärs, wenn alles automatisch geht, aber ggf. könnte auch ein manueller Schritt dabei vorkommen (besser wär aber ohne).
Danke und Grüße
Rhonny
Ist das irgendwie möglich (evtl. auch mit JS?)?
irgendwie ist es möglich, ja - mit javascript dürfte es etwas schwieriger werden
Am besten wärs, wenn alles automatisch geht, aber ggf. könnte auch ein manueller Schritt dabei vorkommen (besser wär aber ohne).
vollautomatisch ist mit scheduled tasks unter windows oder cron jobs unter linux/unix kein problem
zusammenfassend: php alleine reicht nicht aus, bietet aber eine solide grundlage
zusammenfassend: php alleine reicht nicht aus, bietet aber eine solide grundlage
sehr schön.
PHP verstehe ich, aber scheduled tasks sagt mir gar nichts...
Da wir das "ob" nun geklärt haben, hat auch noch jemand ein "wie" parat?
PHP verstehe ich, aber scheduled tasks sagt mir gar nichts...
auf deutsch heissts "geplante tasks" - damit kannst du problemlos täglich 1x um 17.42 wenn es ein donnerstag ist der der dritte tag im monat ist den php-interpreter aufrufen ;)
Da wir das "ob" nun geklärt haben, hat auch noch jemand ein "wie" parat?
"wie" stellst du es dir denn vor? ggf. kann man dir dann mit den nötigen funktionen auf die sprünge helfen - php verstehst du ja lt. deiner obrigen aussage
PHP verstehe ich, aber scheduled tasks sagt mir gar nichts...
auf deutsch heissts "geplante tasks" - damit kannst du problemlos täglich 1x um 17.42 wenn es ein donnerstag ist der der dritte tag im monat ist den php-interpreter aufrufen ;)
nehme an dann brauche ich das doch nicht mit dem scheduled tasks (dann weiß ich glaub ich auch was du damit meintest).
Das ist keine öffentlich Homepage. D.h. die Werte müssen nur aus den ExcelDateien gelesen werden, wenn ich die Seite auch aufrufe. Also die Seite wird geladen und soll dabei kurz in der Datei c:\dateien\tabelle.xls den Wert aus Zelle R45 auslesen.
Damit müsste sich scheduled tasks erübrigt haben und PHP reichen, oder?
Nur mit welchen Befehlen setze ich das um?
Danke
Damit müsste sich scheduled tasks erübrigt haben und PHP reichen, oder?
ja - wenn du die seite 100x am tag aufrufst, benötigst du keinen cron job oder ähnliches - die performance reicht da bei weitem auch so aus
Nur mit welchen Befehlen setze ich das um?
ich würd' mit folgendem beginnen (ernsthaft)
<?php
echo 'weee';
?>
und nach diesem erfolgreichen test des php-interpreters mit fopen() weitermachen
und nach diesem erfolgreichen test des php-interpreters mit fopen() weitermachen
Soweit war ich schonmal. Das Problem ist, wie ich bei der Datei dann den Inhalt von Zelle R45 bekomme. Also nach was ich da exploden könnte oder wie ich da sonst mit klar komme.. Also wenn das eine CSV Datei wäre wärs jan icht so schwer, aber da es sich um eine voll formatierte XLS Datei handelt, weiß ich nicht wie ich die richtige Stelle in der Datei treffe, um meine Daten zu bekommen..
Soweit war ich schonmal. Das Problem ist, wie ich bei der Datei dann den Inhalt von Zelle R45 bekomme.
und warum sagst du das nicht gleich? ;)
Also nach was ich da exploden könnte oder wie ich da sonst mit klar komme.. Also wenn das eine CSV Datei wäre wärs jan icht so schwer, aber da es sich um eine voll formatierte XLS Datei handelt, weiß ich nicht wie ich die richtige Stelle in der Datei treffe, um meine Daten zu bekommen..
xls ist ein containerformat in das microsoft gewöhnlich alles mögliche reinrotzen kann - aber wozu gibts parser?
PHP-ExcelReader
xls ist ein containerformat in das microsoft gewöhnlich alles mögliche reinrotzen kann - aber wozu gibts parser?
PHP-ExcelReader
Vielen Dank, das klingt nach genau dem, was ich suche.
Habe das mal gezogen und auf den Server geladen, um example.php zu öffnen Testseite
Als Ergebnis kommt ein Error:
Fatal error: main() [function.require]: Failed opening required 'Spreadsheet/Excel/Reader/OLERead.php' (include_path='.:/usr/lib/php') in /homepages/32/d253680135/htdocs/OPs Release/playground/excel/Excel/reader.php on line 31
Habe aber nichts an den Sateien geändert sondern alle komplett hochgeladen..
Also die readme gibt relativ wenig her. Die XLS Datei die als Beispiel dabei war lässt sich auch nicht öffnen (Server auf dem das Dokument liegt scheint nicht erreichbar zu sein).
Warum kommt dieser Fehler? Wie vermeide ich ihn?
Bin dir für deine Hilfe wirklich dankbar.
Rhonny
Habe gerade was vom OLE Package gelesen. Ist ein tgz Datei
OLE Download
Muss das auf den Server? Unter welchen Pfad?
Tut mir Leid, aber bin noch neu auf dem Gebiet Parser und OLE.
Danke.
So, habe mir jetzt mal eine eigene example.php geschrieben (nach Beispiel der Doku)
<?php
include('reader.php');
$xl_reader = new Spreadsheet_Excel_Reader();
$xl_reader->read("filename.xls");
$cells = $xl_reader[0]['cells'];
$cell_2_4 = $cells[2][4];
echo $cell_2_4;
?>
und in reader.php die Zeile
require_once 'Spreadsheet/Excel/Reader/OLERead.php';
durch
require_once 'oleread.inc';
ersetzt, da diese Datei ja mit im Download war.
Es kommt leider überhaupt keine Ausgabe (Die Excel Datei hat in den Zellen des ersten Tabs jeweils den Zellennamen ohne Formatierung stehen (Also in A1 steht auch A1 etc.)
Sollte als Ausgabe also D2 rauskommen... Nichts :-(
Hey suit,
habe den ExcelReader gezogen und getestet. Funktioniert wirklich prima.
Wenn ich allerdings eine lokale Datei öffnen will kommt als Ausgabe "The filename c:\filename.xls is not readable".
Habe es mit fopen() probiert und mit direktem angeben des Pfads in $xl_reader->read("c:\filename.xls");
Also wie öffne ich nun eine lokale Datei?
habe den ExcelReader gezogen und getestet. Funktioniert wirklich prima.
Wie hast du das gemacht? Bei mir kommt entweder ein Fehler oder keine Ausgabe..
@ RJ45:
Das ersetzen von oleread.php durch oleread.inc war schon richtig.
In deiner eigenen Test Datei ist einfach ein Fehler drin:
$cells = $xl_reader[0]['cells'];
solltest du ersetzen durch
$cells = $xl_reader->sheets[0]['cells'];
und schon sollte es funktionieren.