EXT结合POI导出数据到Excel表格
来源:互联网 发布:网络运营商无服务 编辑:程序博客网 时间:2024/06/10 19:10
最近遇到了导出数据到excel的情况,刚好前台用到了EXT,就使用EXT结合POI导出数据了:
前台js代码如下:
function exportExcel(){ var gridpanel = grid; //'Ext.grid.Panel' 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: path+'/exportExcelByExtAndPOI/exportExcel.do', method: 'POST', isUpload: true, form: Ext.fly('frmDummy'), params: { excleData:Ext.JSON.encode(data), excleHeader:Ext.JSON.encode(headerIndex), excleText:Ext.JSON.encode(headText) } }); }
接下来就是后台POI解析代码了:
package com.hrtel.framework.util; import java.io.OutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; 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.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @Controller @RequestMapping("/exportExcelByExtAndPOI") public class ExportExcelByExtAndPOI { private static final Logger logger = Logger.getLogger(ExportExcelByExtAndPOI.class); @RequestMapping("/exportExcel") public void exportExcel(HttpServletRequest request, HttpServletResponse response){ logger.info("*******into method exportExcel**********"); String excleData = request.getParameter("excleData"); String excleHeader = request.getParameter("excleHeader"); String excleText = request.getParameter("excleText"); JSONArray excle = JSONArray.fromObject(excleData); HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); // 解析表头 JSONArray dataHeader = JSONArray.fromObject(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(excleHeader); for(int col=0;col<dataIndex.size();col++){ String mycell=dataIndex.getString(col); mycell=excleObj.getString(mycell); HSSFCell cell = row.createCell(col); // 定义单元格为字符串类型 cell.setCellType(HSSFCell.CELL_TYPE_STRING); // 在单元格中输入一些内容 cell.setCellValue(mycell); } r++; }; //通过Response把数据以Excel格式保存 response.reset(); response.setContentType("application/msexcel;charset=UTF-8"); response.setCharacterEncoding("UTF-8"); try { response.addHeader("Content-Disposition", "attachment;filename=\"" + new String(("test" + ".xls").getBytes("UTF-8"), "ISO8859_1") + "\""); OutputStream out = response.getOutputStream(); workbook.write(out); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } } }
0 0
- EXT结合POI导出数据到Excel表格
- EXT结合POI导出数据到Excel表格
- EXT结合POI导出数据到Excel表格
- jFinal与POI结合导出excel表格
- 简单的POI导出JSP页面表格数据到excel
- 操作 POI 从数据库导出数据到excel表格
- EXT中导出表格中的数据到Excel
- 基于POI的Excel表格数据导出
- 数据导出到excel表格
- 表格数据导出到excel
- poi导出excel表格
- POI导出Excel表格
- POI动态导出数据到excel表格实例(poi3.6)
- 用apache poi导出数据到Excel
- struts2 poi 把数据导出到excel
- POI导出数据到EXCEL经典实现
- java poi导出list数据到excel
- poi技术导出海量数据到excel
- Retrofit – Java(Android) 的REST 接口封装类库
- IOS中定时器NSTimer的开启与关闭
- 自定义Adapter并通过布局泵LayoutInflater抓取layout模板编辑每一个item
- leetcode Valid Palindrome
- inverse = “true” example and explanation
- EXT结合POI导出数据到Excel表格
- MyBatis学习总结(三)——优化MyBatis配置文件中的配置
- linux下用vim编写C/C++工程(多个源文件)的基本方法
- Android:都是Layout的BaselineAligned惹的祸
- js解决浏览器自动填充账号密码
- 《程序员面试金典》猫狗收容所
- gallery 各种事件监听方法详解
- UGUI之slider详解
- 集合的全排列问题-递归实现方式的改进---旋转法