Excel로 내보낼 JQGrid의 일부 데이터가 있습니다. 그래서, 우리는 자바 서블릿을 작성하여 Excel에 데이터를 쓰고 다시 보냅니다. 클라이언트 측에서는 JSON 데이터를 전송하여 AJAX JSONP 요청을 사용하고 있습니다. 내가 만든 서블릿과 서블릿을 클라이언트에 다시 보낼 수있다. 그러나 나는 클라이언트 측에서 탁월한 출력이나 어떤 종류의 출력도 볼 수 없습니다.JQuery Excel 내보내기 문제
피들러를 사용하고 http 호출을 관찰 할 때 응용 프로그램에서 결과를 수신 한 것으로 나타났습니다. 그러나 여전히 결과를 보여주지는 않습니다.
내가받은 결과 헤더가 여기에 있습니다. 엑셀 jQuery를 사용으로
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Disposition: attachment; filename=PistonData.xls
Content-Type: application/vnd.ms-excel
Content-Length: 6144
Date: Tue, 27 Mar 2012 08:49:04 GMT
어떻게 이런 결과를 열지? 누군가이 문제를 해결할 수있는 방법을 제안 해 주실 수 있습니까?
업데이트 # 1 내가이 문제에 대한 해결책을했다 올렉의 제안에 따라 경찰의 요청을
$.ajax({
type: "POST",
dataType: "jsonp",
contentType:'application/vnd.ms-excel',
url: "http://devmachine:9010/axis/SPSServlet",
data: param,
success: function (dataToSend) {
alert(dataToSend);
}
});
업데이트 # 2 을 포함하도록 잊어 버렸습니다.
여기 내 코드입니다 :
<form id="frmExcelExport" style="display:none;">
<input type=hidden id="partId" name="partId" />
<input type=hidden id="columnNames" name="columnNames" />
<input type=hidden id="data" name="data" />
</form>
$('#columnNames').val(colModStr);
$('#partId').val(currentPartID);
$('#data').val(dataStr);
var urlForExport = "http://devmachine:9010/axis/SPSServlet";
$('#frmExcelExport').attr("method", "post");
$('#frmExcelExport').attr("action", urlForExport);
$('#frmExcelExport').submit();
그것은 아주 좋은 노력하고 있습니다. Oleg에게 감사합니다 !!!! 파일을 다운로드 할 jQuery를 사용하려는 경우
하지만 get 메소드를 사용하면 서버에 많은 레코드를 보낼 수 없습니다. 권리? 최악의 경우, 나는 서비스하기 위해 500 레코드를 보내야합니다. – Dinesh
@Dinesh : 데이터의 이진 스트림을 보내야합니다.일반적으로 'Content-Encoding'을 'UTF-8'로 설정하고 'UTF-8'로 인코딩 된 'PistonData.xls'데이터를 전송합니다. 그래서 나는 당신이 의미하는 기록을 이해하지 못합니다. – Oleg
@Dinesh : 정말 도움이 될지 모르겠지만 [대답] (http://stackoverflow.com/a/9349688/315935) Open XML SDK 2.0을 사용하는 전체 C# 코드를 게시 한 후 xlsx를 생성합니다. 서버 및 반환 내 대답에 설명 된 것처럼 반환됩니다. 클라이언트에서 서버로 – Oleg