在Web应用中,很多数据经常要导出成Excel文档。在要求不高的情况,通过简单的html设置就可以实现将页面数据导出为excel。主要原理是通过html来表示excel数据,然后用excel软件打开。
方式一:
(1) 能够导出为excel的jsp页面中最好删除表单元素,值留下纯数据和纯html代码。这样导出的excel格式等相对比较自然。如果有表单元素的话,导出的excel里也会是表单元素形式,如按钮等。
(2) 在该JSP页面头部设置response的ContentType为Excel格式
<% response.setContentType("application/vnd.ms-excel;charset=GBK"); %>
(3)页面文字为中文,但是用Excel打开为乱码则在<html>与<head>中加入
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
这样,在浏览器打开按照上述设置的页面时,会自动打开excel来读取数据。这样的设置是让浏览器以为读取到的是一个excel文件数据,会自动调用excel程序来读。
方式二:与方式类似,多了了下载功能
(1) 同方式一的(1)
(2) 在该JSP页面头部设置response的头信息
response.setHeader("Content-disposition","attachment; filename=jclxsp.xls");
(3) 在html的head中设置相关信息
<head xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel"> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <meta name=ProgId content=Excel.Sheet> <meta name=Generator content="Microsoft Excel 11"> <link rel=File-List href="Book1.files/filelist.xml"> <link rel=Edit-Time-Data href="Book1.files/editdata.mso"> <link rel=OLE-Object-Data href="Book1.files/oledata.mso">
(4) 在jsp最后,添加关闭页面代码
response.getWriter().write("<script>window.close();</script>");
这样,在打开时,会以下载对话框,点击“保存”的话会保存为一个excel文件。点击“打开”的话,会直接用excel打开。