JSP页面将数据从mysql导出到excel的Java代码

2024-12-13 06:44:24
推荐回答(3个)
回答1:

jsp要从mysql导出数据到excel分两步操作:

  1. 后台查询mysql符合条件的数据,放在session中。

  2. 页面展示数据,并且控制导出,添加一个按钮,调用导出方法执行。

举例说明:

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"); 

回答2:

在servlet中处理 你可以在点击导出按钮的时候出发这个servlet然后通过设置response.setContentType("application/excel")来设置导出内容为excel文件,这样就可以了

回答3:

导出一样的用jxl写。
//设置类型,下载
response.setContentType("application/x-download");
//设置保存的文件名
response.addHeader("Content-Disposition", "attachment;filename=" + filename);
//写文件
fs = response.getOutputStream();
while ((byteread = inStream.read(buffer)) >0) {
fs.write(buffer, 0, byteread);
}
给出的都是关键代码,看一下应该就会懂了
fs.flush();