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

在JSP页面,我想把数据导出到excel,就是点击一个导出按钮,选择要导出的路径,而不是指定路径,请问高手这个代码应该怎么写,我导入的过程是用jxl写的,导出应该怎么样写... 在JSP页面,我想把数据导出到excel,就是点击一个导出按钮,选择要导出的路径,而不是指定路径,请问高手这个代码应该怎么写,我导入的过程是用jxl写的,导出应该怎么样写好呢~ 展开
 我来答
千锋教育
2015-12-19 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部

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

ajax_2003
2010-01-03 · TA获得超过4995个赞
知道大有可为答主
回答量:2628
采纳率:0%
帮助的人:2443万
展开全部
在servlet中处理 你可以在点击导出按钮的时候出发这个servlet然后通过设置response.setContentType("application/excel")来设置导出内容为excel文件,这样就可以了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忆天_sky
推荐于2016-03-05 · TA获得超过1076个赞
知道小有建树答主
回答量:1592
采纳率:0%
帮助的人:448万
展开全部
导出一样的用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();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式