jsp页面,mysql查询的数据报表输出 前半部分是jdbc操作,后面就是对excel操作了,这个不用非要看什么代码吧…… 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用poi实现的我在servlet添加了如下主要代码,当访问到导出页面时,servlet操作DAO取出数据,然后执行下列代码创建表格,写入数据,最后还会弹出个对话框,问你是否要打开或保存excel String fname ="name";//Excel文件名 OutputStream os = response.getOutputStream();//取出输出流 response.reset();//清空输出流 //设定输出文件头,该方法有两个参数,分别表示应大头的名字和值 response.setHeader("Content-disposition", "attachment; filename="+ fname + ".xls"); HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("传捷速递"); wb.setSheetName(0, "订单信息"); HSSFRow row = sheet.createRow((int)0); sheet.createFreezePane(0, 1);////???Creates a split //设置列宽 sheet.setColumnWidth(1, 3000); sheet.setColumnWidth(7, 8000); sheet.setColumnWidth(8, 4000); sheet.setColumnWidth(11, 3000); sheet.setColumnWidth(12, 8000); //设置第0行,n列的值 cteateCell(wb,row,(int)0,"订单编号"); cteateCell(wb,row,(int)1,"发货时间"); . . . . cteateCell(wb,row,(int)n,"发货人"); try{ for(int i=0;i<m;i++){ //循环添加m行n列的值,value是要添加的各种值 HSSFRow row2 =sheet.createRow((int)(i+1)); cteateCell(wb,row2,0,value); cteateCell(wb,row2,1,value); . . . cteateCell(wb,row2,n,value); } }catch(Exception e){ e.printStackTrace(); } wb.write(os); os.flush(); os.close(); } /** * 设置单元格的值及其样式 * @param wb * @param row * @param col * @param val */ private void cteateCell(HSSFWorkbook wb,HSSFRow row,int col,String val) { HSSFCell cell = row.createCell(col); cell.setCellValue(new HSSFRichTextString(val)); HSSFCellStyle cellstyle= wb.createCellStyle(); cellstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION); cell.setCellStyle(cellstyle); }} Welcome to Java's Group!! 欢迎Java方面的高手来给小弟撑门面!!! 这种情况是工具不兼容么? 急问 <c:foreach>如何一次输出两个值 小弟刚学jsp遇到一个问题,各位大哥帮帮忙呗~~~! 在线急等-tomcat+sqlserver,每过几个小时就要重启一次。 关于JAVA在数据库中提取datetime型数据 java调用sql server2000存储过程问题 假如你有台服务器,搞什么最好? 如何用JavaMail发HTML格式的邮件? 传递参数的问题还请指教!! No current row in the ResultSet jsp初始页面的元素
我在servlet添加了如下主要代码,当访问到导出页面时,servlet操作DAO取出数据,然后执行下列代码
创建表格,写入数据,最后还会弹出个对话框,问你是否要打开或保存excel
String fname ="name";//Excel文件名
OutputStream os = response.getOutputStream();//取出输出流
response.reset();//清空输出流
//设定输出文件头,该方法有两个参数,分别表示应大头的名字和值
response.setHeader("Content-disposition", "attachment; filename="+ fname + ".xls");
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("传捷速递");
wb.setSheetName(0, "订单信息");
HSSFRow row = sheet.createRow((int)0);
sheet.createFreezePane(0, 1);////???Creates a split
//设置列宽
sheet.setColumnWidth(1, 3000);
sheet.setColumnWidth(7, 8000);
sheet.setColumnWidth(8, 4000);
sheet.setColumnWidth(11, 3000);
sheet.setColumnWidth(12, 8000);
//设置第0行,n列的值
cteateCell(wb,row,(int)0,"订单编号");
cteateCell(wb,row,(int)1,"发货时间");
.
.
.
.
cteateCell(wb,row,(int)n,"发货人"); try{
for(int i=0;i<m;i++){
//循环添加m行n列的值,value是要添加的各种值
HSSFRow row2 =sheet.createRow((int)(i+1));
cteateCell(wb,row2,0,value);
cteateCell(wb,row2,1,value);
.
.
.
cteateCell(wb,row2,n,value);
}
}catch(Exception e){
e.printStackTrace();
}
wb.write(os);
os.flush();
os.close();
}
/**
* 设置单元格的值及其样式
* @param wb
* @param row
* @param col
* @param val
*/
private void cteateCell(HSSFWorkbook wb,HSSFRow row,int col,String val)
{
HSSFCell cell = row.createCell(col);
cell.setCellValue(new HSSFRichTextString(val));
HSSFCellStyle cellstyle= wb.createCellStyle();
cellstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);
cell.setCellStyle(cellstyle);
}
}