1.jsp如何利用POI直接生成Excel并在页面中导出
2.如何把JSP页面导出到Excel中jsp怎么导出文件
3.jsp 中Excel的读写操作原理和实现方式是什么?
jsp如何利用POI直接生成Excel并在页面中导出
java中导出Excel有两个组件可以使用,一个是jxl,一个是POI,我这里用的是POI。导出是轻博客javaweb源码可以在服务器上生成文件,然后下载,数据谷源码也可以利用输出流直接在网页
中弹出对话框提示用户保存或下载。生成文件的方式会导致服务器中存在着垃圾文件,实现方式不太优雅,所以这里我采用的是后面直接通过输出流的方式。
1、修改WEB服务器的CONF/web.xml,添加
<mime-mapping>
<extension>xls</extension>
<mime-type>application/vnd.ms-excel</mime-type>
</mime-mapping>
如果不添加这个,那么在网页中下载的vn源码解析时候就变成了JSP文件
2、download.jsp文件
<%@ page contentType="application/vnd.ms-excel" language="java" import="java.util.*,com.shangyu.action.WriteExcel" pageEncoding="GBK"%><%
response.setHeader("Content-Disposition","attachment;filename=test.xls");//指定下载的文件名
response.setContentType("application/vnd.ms-excel");
WriteExcel we=new WriteExcel();
we.getExcel(".xls",response.getOutputStream());
%>
注意不要有html代码,并且除了<% %> 中间的代码,其它的地方不要有空格。否则在导出文件的学spring源码时候会在后台出现异常,虽然不影响程序的使用,到时令人看起来
不太舒服
3、WriteExcel.java 生成Excel的JavaBean,复杂的源码笔记30应用请查看API
package com.shangyu.action;
import java.io.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
public class WriteExcel
{
public void getExcel(String sheetName,OutputStream output)
{
HSSFWorkbook wb=new HSSFWorkbook();
HSSFSheet sheet1=wb.createSheet("sheet1");
HSSFRow row=sheet1.createRow((short)0);
HSSFCell cell=row.createCell((short)0);
cell.setCellValue(1);
row.createCell((short)1).setCellValue(2);
row.createCell((short)2).setCellValue(3);
row.createCell((short)3).setCellValue("中文字符");
row=sheet1.createRow((short)1);
cell=row.createCell((short)0);
cell.setCellValue(1);
row.createCell((short)1).setCellValue(2);
row.createCell((short)2).setCellValue(3);
row.createCell((short)3).setCellValue("中文字符");
//FileOutputStream fileout=new FileOutputStream("workbook.xls");
try {
output.flush();
wb.write(output);
output.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println( "Output is closed ");
}
}
}
通过以上三步,应该可以直接生成Excel文件下载或保存了,这在一些信息系统中相当有用。
本文来自CSDN博客,转载请标明出处:/shangyu/archive////.aspx
如何把JSP页面导出到Excel中jsp怎么导出文件
方法一:functionsaveCode(obj){ varwinname=window.open('','_blank','top=')
;varstrHTML=document.all.tableExcel.innerHTML;winname.document.open('text/html','replace');winname.document.writeln(strHTML);winname.document.execCommand('saveas','','excel.xls');winname.close();
}方法二://Excel导出2/
**如果javaScript报“Automation服务器不能创建对象”,则按下方解决。打开InternetExplorer“工具”菜单栏中的“选项”一栏,单击“安全”栏中的“自定义级别”选项卡,将第三项“对没有标记为安全的activex控件进行初始化和脚本运行”设置成“启用”即可。*/functionexportExecl(tableId){ vartable=document.getElementById(tableId)
;varoXL=newActiveXObject("Excel.Application")
;varoWB=oXL.Workbooks.Add()
;varoSheet=oWB.ActiveSheet;varsel=document.body.createTextRange();sel.moveToElementText(table)
;sel.select();sel.execCommand("Copy");oSheet.P..
.方法一:functionsaveCode(obj){ varwinname=window.open('','_blank','top=')
;varstrHTML=document.all.tableExcel.innerHTML;winname.document.open('text/html','replace')
;winname.document.writeln(strHTML)
;winname.document.execCommand('saveas','','excel.xls');winname.close();
}方法二://Excel导出2/
**如果javaScript报“Automation服务器不能创建对象”,则按下方解决。打开InternetExplorer“工具”菜单栏中的“选项”一栏,单击“安全”栏中的“自定义级别”选项卡,将第三项“对没有标记为安全的activex控件进行初始化和脚本运行”设置成“启用”即可。*/functionexportExecl(tableId){ vartable=document.getElementById(tableId)
;varoXL=newActiveXObject("Excel.Application")
;varoWB=oXL.Workbooks.Add()
;varoSheet=oWB.ActiveSheet;varsel=document.body.createTextRange();sel.moveToElementText(table)
;sel.select();sel.execCommand("Copy");oSheet.Paste();oXL.Visible=true;}这里的tableId为表格的id
jsp 中Excel的读写操作原理和实现方式是什么?
1.创建excel文件<br>//这里的jxl不是java的标准jar包,需要在项目中另外加载import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class ExcelDownload extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 生成xls try { Date d = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_kkmmss "); String random = sdf.format(d); String targetFile = random + ".excel"; response.setContentType("application/vnd.ms-excel"); response.addHeader("Content-Disposition", "attachment; filename=\"" + targetFile + "\""); OutputStream os = response.getOutputStream(); WritableWorkbook wwb = Workbook.createWorkbook(os); // 新建一张表 WritableSheet wsheet = wwb.createSheet("record", 0); // 设置表头 Label label = new Label(0, 0, ""); wsheet.addCell(label); label = new Label(0, 0, "会员姓名"); wsheet.addCell(label); label = new Label(1, 0, "卡号"); wsheet.addCell(label); label = new Label(2, 0, "联系地址"); wsheet.addCell(label); label = new Label(3, 0, "邮编"); wsheet.addCell(label); label = new Label(4, 0, "联系电话"); wsheet.addCell(label); label = new Label(5, 0, "手机"); wsheet.addCell(label); label = new Label(6, 0, "Email"); wsheet.addCell(label); label = new Label(7, 0, "性别"); wsheet.addCell(label); wwb.write(); wwb.close(); os.close(); response.flushBuffer(); } catch (Exception e) { System.out.println("生成信息表(Excel格式)时出错:"); e.printStackTrace(); } } }