利用jxl实现excel导出
来源:互联网 发布:股票历史集合竞价数据 编辑:程序博客网 时间:2024/05/19 19:32
【说明】
1.点击导出,取前台现有的数据通过ajax传到后台,
2.通过jxl生成服务器上的xls文件
3.ajax成功之后转到download,也就是打开保存界面:
【配置】
1.使用了struts2的注解配置
【代码】
jsp:
//导出 $('#exportBtn').click(function(){var str = ''; $('div.datagrid-view2 table.datagrid-btable').find('td').each(function(){str += $(this).text() + '%%%%';}); $.ajax({url : 'scoreAction!exportExcel.action',type : 'POST',data : {str : str,fileName : 'score.xls'},dataType : 'json' }).done(function(data){ if(data && data == 'success'){ window.location.href = "scoreAction!downloadFile.action?fileName=score.xls"; }else{ $.messager.show({title : '失败',msg : '导出失败!'}); } }).fail(function(){ $.messager.show({title : '失败',msg : '导出失败!'}); }); });
action:
action中添加字段fileName和它的setter,getter
添加一个方法getInputStream(),
添加注解,部分代码如下:
@Action(value = "scoreAction", results = { @Result(name = "download", type="stream",params={ "contentType","application/octet-stream", "inputName","inputStream", "contentDisposition","attachment;filename=${fileName}", "bufferSize","4096" })})public class ScoreAction extends BaseAction implements ModelDriven<ClazzRlLearnerPage> {@Autowiredprivate ScoreServiceI scoreService;private String fileName;private String str;//method--publicpublic void exportExcel(){writeJson(scoreService.exportExcel(str));}public String downloadFile(){return "download";}public InputStream getInputStream(){InputStream is = null;String filePath = ((ServletContext)ActionContext.getContext().get(ServletActionContext.SERVLET_CONTEXT)).getRealPath("/") + "jsp\\score\\xls\\score.xls";try {is = new FileInputStream(new File(filePath));} catch (FileNotFoundException e) {e.printStackTrace();}return is;}//getters and setterspublic String getStr() {return str;}public void setStr(String str) {this.str = str;}public String getFileName() {return fileName;}public void setFileName(String fileName) {this.fileName = fileName;}}
jxl实现导出excel:
//导出Excelpublic String exportExcel(String str){WritableWorkbook wwb;String[] strs = str.split("%%%%");String path = ((ServletContext)ActionContext.getContext().get(ServletActionContext.SERVLET_CONTEXT)).getRealPath("/"); try { //创建excel wwb = Workbook.createWorkbook(new FileOutputStream(path + "jsp\\score\\xls\\score.xls")); //创建格式 WritableCellFormat wcf = new WritableCellFormat(); wcf.setVerticalAlignment(VerticalAlignment.CENTRE); wcf.setAlignment(Alignment.CENTRE); //创建sheet WritableSheet ws = wwb.createSheet("sheet", 0); ws.setRowView(1, 500); //表头 ws.addCell(new Label(0, 0, "序号", wcf)); ws.addCell(new Label(1, 0, "机构", wcf)); ws.addCell(new Label(2, 0, "班级", wcf)); ws.addCell(new Label(3, 0, "课件信息", wcf)); ws.addCell(new Label(4, 0, "学员姓名", wcf)); ws.addCell(new Label(5, 0, "课件成绩", wcf)); ws.addCell(new Label(6, 0, "作业成绩", wcf)); ws.addCell(new Label(7, 0, "总成绩", wcf)); //内容 int col = 0; int row = 1; for (int i = 0; i < strs.length; i++) { if(i == 0) ws.addCell(new Label(col++, row, row+"", wcf)); ws.addCell(new Label(col++, row, strs[i], wcf)); if((i+1)%7 == 0){ col = 0; row++; if((i+1) != strs.length) ws.addCell(new Label(col++, row, row+"", wcf)); } } wwb.write(); wwb.close(); return "success"; } catch (Exception e){ e.printStackTrace(); return "fail"; }}
- 利用jxl实现excel导出
- 利用jxl实现excel的导出
- jxl实现导出excel
- Jxl导出Excel实现
- jxl 实现导出excel
- jxl实现excel 导出
- Servlet 利用Jxl导出Excel
- 利用jxl实现excel操作
- 利用jxl实现excel导入
- 如何利用jxl导出excel图片
- JTable 导出 Excel 利用 jxl.jar
- Strusts2实现jxl导出excel文件
- Jxl实现Excel的导入导出
- java jxl实现excel导出功能
- 如保用jxl实现导出Excel文件
- jxl操作实现导出读取excel
- java使用jxl实现导出excel
- SpringMvc+jxl实现excel导入导出
- MadEdit - 支持中文字数统计,多种编码格式的多标签免费文本编辑器
- 克服沟通障碍的三种方法
- 关于js的一点小心得
- linux -/porc/sys/net/ipv4 详解
- 中国黑客史
- 利用jxl实现excel导出
- SDK复制删除移动文件
- maven的部署和启动
- 探秘Java虚拟机——内存管理与垃圾回收
- makeword 函数学习
- JAVA String.format 方法使用介绍
- SAP自定义查询工具SQVI
- SDK获取、设置文件属性和时间
- PHP的ctype函数