Hallo,
ich schreibe derzeit eine Webanwendung mit einem AJAX-Framework und habe ein Problem.
Der Benutzer soll sich Tabellen aus der Anwendung in Excel exportieren können. Dafür lasse ich durch mein Java-Servlet im Tomcat eine CSV-Datei mit den Daten erzeugen und speichere die zum Herunterladen ab.
An den Browser sende ich eine URL mit Verweis zur Datei zurück.
Derzeit lade ich diese URL in ein verstecktes IFrame, im Tomcat ist die Dateiendung CSV mit MIME-Typ definiert.
Im Firefox funktioniert das wunderbar, der Benutzer klickt auf Export, bekommt den Öffnen/Speichern unter-Dialog angezeigt, bei Klick auf 'Öffnen' startet Excel und lädt die Datei.
Im Internet Explorer geht dies nicht, zwar kommt auch hier der Dialog zum Öffnen und Speichern der Datei, bei Klick auf 'Öffnen' wird aber eine Excel-Instanz im Browser geöffnet und die Datei dort geladen. Das soll aber nicht geschehen, da ich das IFrame ja versteckt halte.
Ich kann das Verhalten zwar lokal ändern indem ich unter Windows 'Ordneroptionen -> XLS -> Erweitert -> im selben Fenster durchsuchen' deaktiviere, aber das müsste dann jeder Benutzer bei sich extra einstellen.
Gibt es eine Möglichkeit, serverseitig/im HTML-Code, gerne auch per Javascript den IE dazu zu bringen, Excel-artige Dokumente gefälligst nicht im Browser selbst zu öffnen?
Ich halte auch gerne Abstand vom IFrame-Konzept, falls es da eine bessere/elegantere Möglichkeit gibt.
Danke schonmal für Antworten.
Gruß,
Daniel