乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>servlet</em>下载excel 为什么下载的是整个页面 而不是...-servl

<em>servlet</em>下载excel 为什么下载的是整个页面 而不是...-servl

作者:乔山办公网日期:

返回目录:excel表格制作


用户自己选择保存路径
那就是弹出一个IE的下载对话框,代码非常简单!代码如下:
protected void downloadExcel(HSSFWorkbook workbook, HttpServletResponse response, String filename) throws IOException {
OutputStream out = response.getOutputStream();
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
response.setContentType("application/msexcel;charset=UTF-8");
workbook.write(out);
out.close();
}
HSSFWorkbook:如果你用的是POI导出Excel,那么这个对象就不用我说了,你懂的!
HttpServletResponse:这个更不用说,你懂的!
String:这个你也懂的,接受的是文件名,请注意不要带任何636f70797a686964616f334路径,只是一个文件名而已!这个传过来的目的是在弹出的IE下载对话框中可以看见文件名、文件类型!肯定是要带后缀名的,否则无法识别。

用户自己选择保存路径
那就是e799bee5baa6e58685e5aeb9366弹出一个IE的下载对话框,代码非常简单!代码如下:
protected void downloadExcel(HSSFWorkbook workbook, HttpServletResponse response, String filename) throws IOException {
OutputStream out = response.getOutputStream();
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
response.setContentType("application/msexcel;charset=UTF-8");
workbook.write(out);
out.close();
}
HSSFWorkbook:如果你用的是POI导出Excel,那么这个对象就不用我说了,你懂的!
HttpServletResponse:这个更不用说,你懂的!
String:这个你也懂的,接受的是文件名,请注意不要带任何路径,只是一个文件名而已!这个传过来的目的是在弹出的IE下载对话框中可以看见文件名、文件类型!肯定是要带后缀名的,否则无法识别。
int length = b.length;
response.setContentType("application/vnd.ms-excel");//文件格式,此处设置为excel
response.setHeader("Content-Disposition",
"attachment;filename=文件.xls");//此处需要设置下载文件的默认名称
response.setContentLength(length);
java.io.OutputStream o = response.getOutputStream();
o.write(reportContent, 0, length);
o.flush();
out.clear();
out = pageContext.pushBody();
response.flushBuffer();

1.Servlet生成Excel文件并提e5a48de588b67a686964616f335示下载
2.直接编辑代码:
response.reset();
response.setContentType("application/vnd.ms-excel"); //改成输出excel文件
response.setHeader("Content-disposition","attachment; filename=file.xls" );
OutputStream os =response.getOutputStream();

Workbook wb;
WritableWorkbook wwb=null;
try {
wb = Workbook.getWorkbook(new java.io.File(request.getRealPath("/")+"/excel/exportFile.xls"));
wwb = Workbook.createWorkbook(os, wb);
} catch (BiffException e) {
e.printStackTrace();
}

if(wwb==null) {
return;
}
WritableSheet ws1 = null;
try {
ws1 = wwb.getSheet(0);
Label label = new Label(0, 0, "值", getNormolCell());
ws1.addCell(label);

} catch(Exception ex) {
ex.printStackTrace();
System.out.println("写入Excel文件发生错误!!!");
}

try {
wwb.write();
os.flush();
wwb.close();
}catch(Exception ex){
ex.printStackTrace();
}finally {
if( os != null)
os.close();
}

样式
public static WritableCellFormat getNormolCell() {// 9号字体,上下左右居中,带黑色边框
WritableFont font = new WritableFont(WritableFont.createFont("宋体"), 9);
WritableCellFormat format = new WritableCellFormat(font);
try {
format.setAlignment(jxl.format.Alignment.CENTRE);
format.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
format.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
} catch (WriteException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return format;
}

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网