Frage

Ich verwende eine einfache Web-basierte PHP-Anwendung, die eine Tabelle als Tabelle gibt

header("Content-Disposition: attachment; filename=" . $filename . ".xls");
header("Content-Type: application/vnd.ms-excel");

//inserts tab delimited text

Aber ich finde die heruntergeladene Tabelle als schreibgeschützte Datei öffnet und muss vor Ort und (in Excel unter Windows) die Art geändert XLS (von HTML) gespeichert werden. Gibt es eine Möglichkeit das Attribut der Datei des Typs richtig einzustellen, so dass eine einfache speichern tun erfordert nicht die Datei des Typs Korrektur?

Ist die Datei schreibgeschützt heruntergeladen von der Natur der Sicherheit oder ist das nicht normal?

Auch ich mag nicht die automatischen Grenzen erstellt, wenn die Tabelle in Excel oder Openoffice (unter Linux) zu öffnen. Ich würde es vorziehen, keine Formatierung von Rahmen zu haben. Gibt es eine Möglichkeit in der Datei keine zusätzliche Formatierung angeben oder diese in diesen Anwendungen eingebaut ist?

War es hilfreich?

Lösung

Ich weiß nicht, welche Version von Excel Sie reden, also werde ich nehme an, dass Sie eine 2007 oder eine neuere Version verwenden.
Die Erweiterung ändern Problem hängt wahrscheinlich von einer Office-Funktion namens „ Erweiterung Härten "; soweit ich weiß, ist die einzige Lösung, die eine echte Excel-Datei (zum Beispiel zu erzeugen, indem das PHPExcel mit Satz von Klassen), und nicht eine HTML-Datei.
Die heruntergeladenen Dateien sind schreibgeschützt aus Sicherheitsgründen, da sie in der so genannten geöffnet werden „ Geschützte Ansicht ":

  

Dateien aus dem Internet und von anderen potenziell unsicheren Standorten   enthalten, können Viren, Würmer oder andere Arten von Malware, die schaden können   dein Computer. Um Ihren Computer zu schützen, Dateien von diesen   möglicherweise unsichere Standorte sind in der geschützten Ansicht geöffnet. Durch die Nutzung   Geschützte Ansicht, können Sie eine Datei lesen und überprüfen Sie seinen Inhalt während   Reduzierung der Risiken, die auftreten können.

Abschließend noch ein Wort über Grenzen und Formatierung: mit der alten Excel 2000-Version, können Sie die Ausgabe formatieren, indem einfach einig XML-Tags im Header-Abschnitt des HTML-Code hinzufügen; finden Sie in der „ Microsoft Office HTML und XML-Referenz “für weitere Details und Beispiele, aber denken sie daran, dass es ziemlich veraltet ist, so glaube ich nicht, dass diese Technik mit den neueren Excel-Versionen noch funktioniert.
Wenn Sie mehr Kontrolle haben über die generierte ouput wollen, sollten Sie nicht einfach HTML verwenden für die Kalkulationstabellendatei zu erstellen.
Auf diesen Beitrag auch einige Alternativen zu PHPExcel zum Schreiben von Excel-Dateien finden können.

Andere Tipps

AFAIK, zumindest unter Windows, es hängt davon ab, was der Benutzer tut mit der Aufforderung durch den Browser angezeigt, wenn sie auf dem Link folgen.

Wenn der Benutzer wählt, um die Datei zu speichern, wird es nicht nur gelesen werden. Wenn der Benutzer es zu öffnen wählt, wird die Datei in einem temporären Verzeichnis gespeichert werden und der Browser kann es entfernen, wenn es geschlossen ist. Ich bin nicht sicher, wie dieser Mechanismus funktioniert, aber ich gehe davon aus es ist ein Schloss irgendwo beteiligt, den die Datei nur lesen macht.

Wenn Sie lokal speichern möchten, können Sie das Attribut content-description setzen könnte:

header('Content-Description: File Transfer');   
header('Content-Type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename=" . $filename . ".xls");    

Bearbeiten

Wenn Sie die Registerkarte Text drucken und content-dispositionlike xls oder csv-Attribut, Excel-Anwendung (oder ein anderes Programm, wie gnumeric oder Open Office) erkennt es wie xls oder csv.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top