Zur Navigation

Übergeben einer Tabelle als Argument [2]

11 Jörg Kruse

Inwieweit dein Weg praktikabel ist, weiß ich leider auch nicht ganz einzuschätzen - geht es nur noch darum, den User dazu zu bewegen, dass er auf den Link klickt oder immer noch darum, wie die Daten übertragen werden?

Ich dachte eigentlich daran, das CSV auf der ersten Seite fertig zusammenzustellen, und dieses dann per Formular zu übertragen.

Eine weitere Möglichkeit wäre es vielleicht, das CSV einfach per fwrite() in eine Datei zu schreiben?

21.02.2006 13:14

12 dobberph

Hi, naja, die Datei wäre dann von aussen sichtbar, dass ist bei Mitgliederdaten nie gut...

Ach was du meintest ist, die .cvsDatei in einen String zu packen und dann als Form zu übergeben?

DerTobi

P.S.: Wenn ich bis Sonntag nicht mehr antworte, hat mich meine Freundin vom Rechner weggerissen... ;D

21.02.2006 15:00

13 Jörg Kruse

Ach was du meintest ist, die .cvsDatei in einen String zu packen und dann als Form zu übergeben?

Ja, ich kann mir vorstellen, dass die Übergabe so funktioniert

21.02.2006 21:36

14 dobberph

Hm, funktioniert nur teilweise, er schreibt die Daten in die .cvs Datei aber macht keine Zeilenumbrüche mit.
Alle \n interessieren ihn nicht, möglicherweise liegt das am Übergeben mit
<a href='../../mitgliederlistedownload.php?tabelle=".$export."' target='_blank'>Mitgliederliste</a>

und auffangen mit echo $_GET['tabelle'];

Kann das sein, bzw, kann ich das erzwingen, dass das mitgenommen wird?

DerTobi

21.02.2006 22:03 | geändert: 21.02.2006 22:03

15 Jörg Kruse

Die \n werden anscheinend vor der Übertragung entfernt - versuche es mal stattdessen mit zwei Slashes: \\n - nach der Übertragung entfernst du das doppelte \ wieder mit stripslashes():

echo stripslashes($_GET['tabelle']);

21.02.2006 23:04

16 dobberph

Es wird wieder der gleiche Fehler angezeigt (allerdings sieht man in in der Zelle die eigentlich in der nächsten Zeile stehen sollte jetzt ein\n ganz am anfang, aber das wird wohl nicht benutzt ???)

DerTobi


Dieser Fehler tritt normalerweise auf, wenn Sie versuchen eine Datei mit mehr als 65536 Zeilen oder 256 Spalten zu öffnen. Excel hat eine Limitation von 65536 Datenzeilen und 256 Spalten pro Arbeitsblatt. Sie können mehrere Arbeitsblätter mit dieser Anzahl von Zeilen und Spalten benutzen, jedoch genügt meistens eine Arbeitsmappe (Datei).   Die Anzahl der Arbeitsblätter, die Sie pro Arbeitsmappe benutzen können, findet ihre Limitation lediglich in der verfügbaren Speicherkapazität Ihres Betriebssystems. Standardmäßig, Excel kann 3 Arbeitsblätter unterstützen, und mehr sofern die vorhandene Speicherkapazität die Anzahl der Daten unterstützt.
Das Abschneiden von Zeilen oder Spalten außerhalb der Limits erfolgt automatisch und kann nicht konfiguriert werden. Dieses Problem kann meistens damit behoben werden, indem Sie die Quelldatei mit einem Text-Editor, wie zum Beispiel Microsoft Office Word öffnen, und die Datei anschließend unter Aufteilung in mehrere Dateien mit Zeilen- oder Spaltenanzahlen innerhalb der Limits von Excel speichern. Diese Dateien können dann mit Excel geöffnet oder in ein Excel-Arbeitsblatt importiert werden.
Falls Sie ein Dateiformat verwenden, das die Anwendung eines Texteditors nicht unterstützt, kann es einfacher sein die Daten nach Microsoft Office Access zu importieren und anschließend die "Exportieren" Feature in Access anzuwenden, um die Daten in einem Excel-Format zu importieren. Andere Methoden zum Importieren größerer Dateien in mehrere Arbeitsblätter sind verfügbar, können jedoch wesentlich aufwendiger sein als die Anwendung eines Texteditors oder Access.
Weitere Informationen zu dieser Fehlermeldung erhalten Sie online.

22.02.2006 01:50

17 Jörg Kruse

Der Zeilenumbruch wird je nach Betriebssystem unterschiedlich kodiert:

- unter Unix / Linux / Mac OS X: "\n"
- unter Windows / DOS: "\r\n"
- unter Mac OS: "\r"

22.02.2006 08:37

18 dobberph

Ich benutze Windows, ich glaube der Webspace läuft aber unter Linux.
In meinem Programm steht \r\n. Was gilt denn?

DerTobi

$db->query("select id from mitgliederliste ".$abteilung." order by nachname");
while($db->next_record()) {
$mitglied = Mitglied::load ($db->f("id"));
$Spalte[] = str_replace("\"", "\"\"", $mitglied->nachname);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->vorname);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->telefonnummer);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->handy);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->icq);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->email);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->strasse);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->plz);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->ort);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->gebdat);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->mitgliedseit);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->trainer);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->bemerkung1);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->bemerkung2);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->bemerkung3);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->bemerkung4);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->bemerkung5);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->bemerkung6);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->bemerkung7);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->bemerkung8);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->bemerkung9);
$Spalte[] = str_replace("\"", "\"\"", $mitglied->bemerkung10);

for($j = 0; $j < count($Spalte); $j++){
$export .= "\"" . $Spalte[$j] . "\"";
if($j != count($Spalte)-1){
$export .= ";";
}
} //of for
$export .= "\r\\n";
$Spalte = "";
} //of while
echo "<CENTER><p><a href='../../mitgliederlistedownload.php?tabelle=".$export."' target='_blank'>Mitgliederliste als .csv Datei</a></p></center>";
$db->free();

22.02.2006 13:43

19 dobberph

Wenn ich nur \n benutze, steht in der Zelle, die umgebrochen werden müsste
\n"Dobberphul" , wobei Dobberphul der Datensatz ist. Die " stehen dort wirklich drin.

Mfg,
DerTobi

P.S.: Bin jetzt endgültig bis Sonntag in Bayern

22.02.2006 13:46

20 Jörg Kruse

Ich denke, dass Excel als Windows-Programm ein "\r\n" für den Zeilenumbruch benötigt

PS: schönen Urlaub ;)

22.02.2006 14:38 | geändert: 22.02.2006 14:39