A. jsp如何利用POI直接生成Excel并在页面中导出
java中导出Excel有两个组件可以使用,一个是jxl,一个是POI,我这里用的是POI。导出是可以在服务器上生成文件,然后下载,也可以利用输出流直接在网页
中弹出对话框提示用户保存或下载。生成文件的方式会导致服务器中存在着垃圾文件,实现方式不太优雅,所以这里我采用的是后面直接通过输出流的方式。
1、修改WEB服务器的CONF/web.xml,添加
<mime-mapping>
<extension>xls</extension>
<mime-type>application/vnd.ms-excel</mime-type>
</mime-mapping>
如果不添加这个,那么在网页中下载的时候就变成了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=test123.xls");//指定下载的文件名
response.setContentType("application/vnd.ms-excel");
WriteExcel we=new WriteExcel();
we.getExcel("111.xls",response.getOutputStream());
%>
注意不要有html代码,并且除了<% %> 中间的代码,其它的地方不要有空格。否则在导出文件的时候会在后台出现异常,虽然不影响程序的使用,到时令人看起来
不太舒服
3、WriteExcel.java 生成Excel的JavaBean,复杂的应用请查看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博客,转载请标明出处:http://blog.csdn.net/shangyu79/archive/2008/07/21/2682541.aspx
B. JSP页面将数据从mysql导出到excel的Java代码
jsp要从mysql导出数据到excel分两步操作:
后台查询mysql符合条件的数据,放在session中。
页面展示数据,并且控制导出,添加一个按钮,调用导出方法执行。</ol>举例说明:Java代码sql = "select * from tablename";rs = stmt.executeQuery(sql);//新建Excel文件String filePath=request.getRealPath("aaa.xls");File myFilePath=new File(filePath);if(!myFilePath.exists())myFilePath.createNewFile();FileWriter resultFile=new FileWriter(myFilePath);PrintWriter myFile=new PrintWriter(resultFile);resultFile.close();//用JXL向新建的文件中添加内容OutputStream outf = new FileOutputStream(filePath);jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(outf);jxl.write.WritableSheet ws = wwb.createSheet("sheettest", 0);int i=0;int j=0;for (int k = 0; k < rs.getMetaData().getColumnCount(); k++) {ws.addCell(new Label(k,0,rs.getMetaData().getColumnName(k+1)));}while(rs.next()){out.println(rs.getMetaData().getColumnCount());for (int k = 0; k < rs.getMetaData().getColumnCount(); k++) {ws.addCell(new Label(k,j+i+1,rs.getString(k+1)));}i++;}wwb.write();wwb.close();}catch(Exception e){e.printStackTrace();}finally{rs.close();conn.close();}response.sendRedirect("aaa.xls");
C. jsp从数据库查询出来的数据如何让生成excel报表。
你需要有可以生成excel的jar包,比如jxl.jar,然后通过这个jar包里的sheet,cell等类来创建你的excel的sheet,单元格等内容,用workbook来创建excel文件,具体的用法可以参考相关资料。
D. 如何把JSP页面导出到Excel中
导出excel,常用两种办法。
1、java后台用第三方包 比如POI, 把你想要展示的数据,填进去,导出excel文件。
2、调用第三方插件显示在jsp页面,比如金格控件。用户在页面可以在线编辑excel,然后 用户手动导出成excel文件。
个人建议你,画面jsp展示table之后,单独留一个“导出”按钮,用户点击之后,你后台java再把刚刚通过jsp展示的数据,封装成excel,给用户下载。也就是第一种方法。这种最常用。
E. javascript 将jsp中的table导出 excel
你试试这个方法。
var oWB = oXL.Workbooks.Add(); //新增工作簿
var oSheet = oWB.ActiveSheet; //创建工作表
var sel=document.body.createTextRange();//创建文字区域专
sel.moveToElementText(dataTable);//dataTable为table的id//定位区域
sel.select();//选择属
sel.execCommand("Copy");//复制
oSheet.Paste();//粘贴
oXL.Visible = true;
oXL.UserControl = true;
oSheet = null;
oWB = null;
oXL = null;
F. 怎么把JSP页面里的查询出来的数据导出到excel
jsp页面导出excel的话,刚好有做这个功能,可以参考如下代码:
function getExplorer() {
var explorer = window.navigator.userAgent;
// ie
if (explorer.indexOf("MSIE") >= 0 || (explorer.indexOf("Windows NT 6.1;") >= 0 && explorer.indexOf("Trident/7.0;") >= 0) ) {
alert("识别你是IE浏览器1111======");
return 'ie';
}
// firefox
else if (explorer.indexOf("Firefox") >= 0) {
return 'Firefox';
}
// Chrome
else if (explorer.indexOf("Chrome") >= 0) {
return 'Chrome';
}
// Opera
else if (explorer.indexOf("Opera") >= 0) {
return 'Opera';
}
// Safari
else if (explorer.indexOf("Safari") >= 0) {
return 'Safari';
}
}
//设置导出的excel的标题
var excelTitle ="表格数据";