【javaWeb】Struts 2导出excel文件
来源:互联网 发布:淘宝劵 编辑:程序博客网 时间:2024/05/02 04:28
一、功能:将界面table数据,导出为excel文件保存
二、具体实现:
2.1 jsp
注:button: <input type="button" value="导出excel" onclick="exportExcel()">
确定 引入调用的正确 js文件
2.2 js
function exportExcel(){ alert("导出"); var archiveaccount = document.forms['arcAccount']; archiveaccount.submit();}
2.3 action
public String exportExcel() throws Exception { List<List<Object>> data = getExportData(); //将表格数据转换为list,此方法省略 String fn = new String(("ArchiveAccount"+new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date())).getBytes(), "ISO-8859-1")+ ".xls"; //设置导出文件名 if(createExcel(fn, data, "统计结果")){ return "success"; } return "init"; }
/** * 创建新的Excel 工作簿 * */ public boolean createExcel(String filename, List<List<Object>> data,String sheetName) { HSSFWorkbook workbook = null; HSSFSheet sheet = null; HSSFRow[] rows = null; HSSFCell[][] cells = null; workbook = new HSSFWorkbook(); if (sheetName.trim().equals("")) { sheet = workbook.createSheet("表"); } else { sheet = workbook.createSheet(sheetName); } try { int row = 0; int col = 0; if (data.size() > 0) { row = data.size(); col = data.get(0).size(); } rows = new HSSFRow[row]; cells = new HSSFCell[row][col]; for (int i = 0; i < data.size(); i++) { rows[i] = sheet.createRow((short) i); for (int j = 0; j < data.get(i).size(); j++) { cells[i][j] = rows[i].createCell((short) j); cells[i][j].setCellType(HSSFCell.CELL_TYPE_STRING); if (data.get(i).get(j) != null && !data.get(i).get(j).toString().trim().equals("")) { cells[i][j].setCellValue(data.get(i).get(j).toString() .trim()); } else { cells[i][j].setCellValue(""); } } } ByteArrayOutputStream baos = new ByteArrayOutputStream(); HttpUitls.getResponse().setHeader("Content-disposition","attachment; filename=" +filename); workbook.write(baos); byte[] ba = baos.toByteArray(); excelStream = new ByteArrayInputStream(ba); return true; } catch (Exception e) { return false; } }
2.4 struts.xml
<action name="*ArchiveAccount" class="com.personalize.action.archiveaccount.ArchiveAccountAction" method="{1}"> <result name="init">jspNew/archiveaccount/ArchiveAccount.jsp</result> <result name="success" type="stream"> <param name="contentType">application/vnd.ms-excel</param> <!-- 注意这里的ContentType --> <param name="contentDisposition">attachment;filename="${fileName}"</param> <!-- 导出文件名 --> <param name="inputName">excelStream</param> <!-- 这里需要和Action里的变量名一致 --> <param name="bufferSize">4096</param> </result> </action>
三、执行效果
点击导出弹出文件下载对话框,点击保存,弹出选择路径对话框,选择路径点击保存即可
- 【javaWeb】Struts 2导出excel文件
- JavaWeb中导出excel文件
- Struts 2导出EXCEL
- Struts 2导出EXCEL
- javaWeb导出POI 操作excel文件
- Struts 2导出EXCEL收藏
- Struts 2导出EXCEL收藏
- Struts的POI导出Excel文件
- JavaWeb导出excel
- JavaWeb导出Excel出错
- JavaWeb项目导出Excel文件并弹出下载框
- javaweb项目-将数据导出为excel文件思路总结
- Javaweb实现页面上如何导出Excel文件
- JavaWeb中导出excel文件的简单方法
- Struts 导出 Excel 文档
- struts jxl导出Excel
- javaweb 利用poi 导出excel
- javaWeb导出Excel到客户端
- 动态添加控件
- Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xm
- 【QC开发相关】解决无法创建TDConnection(OTAClient.dll中提供)对象的问题(错误0x800703e6)
- hdu 1025 Constructing Roads In JGShining's Kingdom【即求最长上升子序列】
- JSP内置对象
- 【javaWeb】Struts 2导出excel文件
- 为产品赋予人格 - 情感化设计的组成要素及实践案例
- oracle中的connect by prior ... start with 数据库的递归算法
- glibc ptmalloc中的宏操作
- 截断表 TRUNCATE
- “IT程序猿是怎么练成的” ——浅阅读是个技术活:食不厌精,脍不厌细
- JavaScript【日期(今天是:xxxx年xx月xx日)】
- android4.0上ListView出现残影
- cocos2d-x场景动态切换