экспорт extjs в Excel не работает в IE - PullRequest
1 голос
/ 30 января 2012

Я использую extjs Ext.grid.GridPanel в jsp, в этом функция экспорта в Excel не работает в IE.Он работает в FireFox и Chrome.

Код:

window.location='data:application/vnd.ms-excel;base64,' + Base64.encode(grid.getExcelXml());

Пожалуйста, дайте мне решение для этого.Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 30 января 2013

Я исправил эту проблему с помощью следующего кода.

var vExportContent = grid.getExcelXml();
var dataURL = 'export.jsp';
params =[{
          name: 'ex',
          value: vExportContent 
          },{
          name: 'FileName',
          value: 'excel.xls'
           }];
 post_to_url(dataURL, params, 'post');



function post_to_url(path, params, method) {
     method = method || "post"; 
     var form = document.createElement("form");
     form.setAttribute("method", method);
     form.setAttribute("action", path);
     for(var i=0; i<params.length; i++) {
         var hiddenField = document.createElement("input");
         hiddenField.setAttribute("type", "hidden");
         hiddenField.setAttribute("name", params[i].name);

         hiddenField.setAttribute("value", params[i].value);  
       //  alert(params[i].value);

         form.appendChild(hiddenField);
     }   

     document.body.appendChild(form);   

     form.submit();

 }

export.jsp

<%@ page language="java" pageEncoding="UTF-8"%>  

<%
 response.setHeader("Pragma","public");
 response.setHeader("Expires","0");
 response.setHeader("Cache-Control","must-revalidate, post-check=0, pre-check=0");
 response.setHeader("Content-Type","application/force-download");
 response.setHeader("Content-Type","application/vnd.ms-excel");
 response.setHeader("Content-Disposition", "attachment; filename=export2excel.xls");

%>

<%@ page import="java.io.*"  %>

<%
String h=request.getParameter("ex");
try {
    PrintWriter pw = response.getWriter();

    //out.println(request.getParameter("ex"));
    pw.println(request.getParameter("ex"));


    //clean up
    pw.close();
} catch(IOException e) {
   out.println(e.getMessage());
}

%>
0 голосов
/ 01 августа 2012

Можете ли вы проверить настройки уровня безопасности для IE.

Пользовательский уровень-> Настройки безопасности-> Загрузки-> Автоматический запрос загрузки файлов-> Включить

Включите эту опцию, чтобы позволить вам загрузить файл, иначе он не будет работать, просто откройте окна и немедленно закройте. Вы не можете определить, что произошло.

Я надеюсь, что это рабочее решение для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...