博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Extjs 导出excel
阅读量:5972 次
发布时间:2019-06-19

本文共 4262 字,大约阅读时间需要 14 分钟。

hot3.png

1前台响应

onExcelBtnClick: function(button, e, eOpts) {                               var gridpanel = this.getRunGrid();                        var cm=gridpanel.columns;            //封装表格数据            var data=[];            var store = gridpanel.getStore();            store.each(function(record){                data.push(record.data);                        },this);            //获取表头的dataIndex            var headerIndex=[];            Ext.Array.forEach( cm, function(item){                            if (item.xtype == "gridcolumn"&&!item.isHidden()) {                    headerIndex.push(item.dataIndex);                }                        });            //获取表头的Text            var headText=[];            Ext.Array.forEach( cm, function(item){                            if (item.xtype == "gridcolumn"&&!item.isHidden()) {                    headText.push(item.text);                }                        });            if (!Ext.fly('frmDummy')) {                var frm = document.createElement('form');                frm.id = 'frmDummy';                frm.name = gridpanel.getId();                frm.className = 'x-hidden';                document.body.appendChild(frm);            }                        Ext.Ajax.request({                disableCaching: true ,                url: '../../sys/MyExportExcel!exportExcel.action',                method: 'POST',                isUpload: true,                form: Ext.fly('frmDummy'),                params: {                    excleData:Ext.JSON.encode(data),                    excleHeader:Ext.JSON.encode(headerIndex),                    excleText:Ext.JSON.encode(headText)                }            });}

2 后台解析数据

package com.kl.action.sys;import java.io.OutputStream;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONArray;import net.sf.json.JSONObject;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.struts2.convention.annotation.Action;import org.apache.struts2.convention.annotation.Namespace;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.interceptor.ServletResponseAware;import org.apache.struts2.interceptor.SessionAware;import com.kl.action.ParentAction;import com.opensymphony.xwork2.ActionSupport;@Namespace("/sys")@Action(value = "MyExportExcel")public class ExportExcel extends ActionSupport  implements  ServletRequestAware, ServletResponseAware {    private String excleData;    private String excleHeader;    private String excleText;        protected HttpServletRequest request;    protected HttpServletResponse response;            public String getExcleData() {        return excleData;    }    public void setExcleData(String excleData) {        this.excleData = excleData;    }    public String getExcleHeader() {        return excleHeader;    }    public void setExcleHeader(String excleHeader) {        this.excleHeader = excleHeader;    }    public String getExcleText() {        return excleText;    }    public void setExcleText(String excleText) {        this.excleText = excleText;    }    public void exportExcel(){        JSONArray excle = JSONArray.fromObject(this.excleData);        HSSFWorkbook workbook = new HSSFWorkbook();        HSSFSheet sheet = workbook.createSheet();        // 解析表头        JSONArray dataHeader = JSONArray.fromObject(this.excleText);        HSSFRow headrow = sheet.createRow(0);        for (int col = 0; col < dataHeader.size(); col++) {            String mycell = dataHeader.getString(col);            HSSFCell cell = headrow.createCell(col);            // 定义单元格为字符串类型            cell.setCellType(HSSFCell.CELL_TYPE_STRING);            // 在单元格中输入一些内容            cell.setCellValue(mycell);        }        int r=0;        for(Object o : excle) {            JSONObject excleObj = (JSONObject)o;            HSSFRow row=sheet.createRow((short)r+1);                        //解析列            JSONArray dataIndex = JSONArray.fromObject(this.excleHeader);                        for(int col=0;col

示例依赖apache  poi组件

请参考 官方案例和参考文档

运行结果:

153044_9Y3E_582040.jpg

转载于:https://my.oschina.net/zhongwenhao/blog/306782

你可能感兴趣的文章
深入浅出JavaScript (五) 详解Document.write()方法
查看>>
Beta冲刺——day6
查看>>
在一个程序中调用另一个程序并且传输数据到选择屏幕执行这个程序
查看>>
代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能
查看>>
关于在VS2005中编写DLL遇到 C4251 警告的解决办法
查看>>
提高信息安全意识对网络勒索病毒说不
查看>>
css+div+jquery弹出层
查看>>
求职相关(链接,不定期更新)
查看>>
maya pyside 多个窗口实例 报错 解决
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
MVC中的三个模块
查看>>
Line: 220 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1
查看>>
oracle 常用命令大汇总
查看>>
mysql 并行复制
查看>>
傲不可长,欲不可纵,乐不可极,志不可满——提高个人修养
查看>>
后台调用gps
查看>>
HTML5标签的语义认知和理解(1)
查看>>
MySQL日志功能详解(2)
查看>>
HP LaserJet 305X 和 339X 系列一体机如何设置手动或自动接收传真?
查看>>