我想将extjs网格内容导出到excel文件。所以我已经做了: 我通过Ext.Ajax.request发送到网格的servlet json内容,如
Ext.Ajax.request({
url : 'ExportToExcel',
method:'POST',
jsonData: this.store.proxy.reader.rawData,
scope : this,
success : function(response,options) {
this.onExportSuccess(response, options);
},
//method to call when the request is a failure
failure: function(response, options){
alert("FAILURE: " + response.statusText);
}
});
然后在servlet中我让servlet中的json做一些事情,例如创建excel文件,将其转换为bytes数组并尝试进行响应。 在Ext.Ajax.request成功方法中,当我尝试做这样的事情时:
var blob = new Blob([response.responseText], { type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet});
var downloadUrl = window.URL.createObjectURL(blob);
var a = document.createElement("a");
a.href = downloadUrl;
a.download = filename;
document.body.appendChild(a);
a.click();
它会下载excel文件,但是当我打开它时会发生错误,说格式或扩展名无效。
WHY ?? 是否可能取决于编码? 我做错了什么?
答案 0 :(得分:0)
Ext内置了一个excel导出器。您可能想尝试使用它来查看是否获得了预期的结果
grid.saveDocumentAs({
type: 'excel',
title: 'My Excel Title',
fileName: 'MyExcelFileName.xml'
});
来自工具包:Ext.grid.plugin.Exporter