求助:怎样在jsp文件里将表格显示为excel文件格式?急!在线等~~~~~~

fayar 2003-06-11 12:20:49
我用jsp实现一个记录查询功能,想将查询出来的结果以excel的格式表现出来,然后可以打印出来!急,在线等!
...全文
86 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangli8850 2003-07-17
  • 打赏
  • 举报
回复
20分确实太少了!

到网上下一个java Excel api包,然后如下:

public boolean builderExcel(HttpServletRequest request,HttpServletResponse response){
boolean bExportSucc =false;
ArrayList mergeList = new ArrayList();
java.lang.Boolean merge = (java.lang.Boolean)request.getSession().getAttribute("merge");
if(merge.booleanValue()){
mergeList.add(parseChinese(request.getParameter("merge1")));
mergeList.add(parseChinese(request.getParameter("merge2")));
}
else {
mergeList.add(parseChinese(request.getParameter("merge1")));
}
try {

String[][] result = (String[][]) request.getSession().getAttribute("result");
ServletOutputStream out = response.getOutputStream();
WritableWorkbook workbook = Workbook.createWorkbook(out);
/************创建工作表*************/
WritableSheet sheet = workbook.createSheet("ExcelReport", 0);
setResultData(result, sheet,setTitle(sheet, mergeList,result[0].length));
/************设置页眉、页脚******************/
sheet.setHeader("页眉", "", "第 &P 页,共 &N 页"); //设置页眉
sheet.setFooter("", "", "&D &T"); //设置页脚
/******注:以上这些&P、&D等参数可以从EXCEL的宏录制取得********/
/************以上所写的内容都是写在缓存中的,下一句将缓存的内容写到输出流中*********/
workbook.write();
/***********关闭文件**************/
workbook.close();
bExportSucc = true;
}
catch (Exception e) {
String sErrorStr = e.toString();
System.out.println("在输出到EXCEL的过程中出现错误,错误原因:" + e.toString());
}

return true;
}

private int setTitle(WritableSheet sheet,ArrayList merge,int totalWidths) {
int returnValue = 0;
try {
WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD);
WritableCellFormat wcf_title = new WritableCellFormat(BoldFont);
wcf_title.setBorder(Border.ALL, BorderLineStyle.THIN); //线条
wcf_title.setVerticalAlignment(VerticalAlignment.CENTRE); //垂直对齐
wcf_title.setAlignment(Alignment.CENTRE); //水平对齐
wcf_title.setWrap(false); //是否换行
returnValue = merge.size();
switch(merge.size()){
case 1:
int temp = 0;
StringTokenizer token = new StringTokenizer( (String) merge.get(0), delimValue);
while (token.hasMoreElements()) {
sheet.addCell(new Label(temp,0 , token.nextToken(), wcf_title));
temp++;
}
break;
case 2:
String[] first = tokenToString((String)merge.get(0),delimValue);
String[] second = tokenToString((String)merge.get(1),delimValue);
int pos = totalWidths - second.length;
for(int i=0;i<pos;i++){
sheet.mergeCells(i,0,i,1);
sheet.addCell(new Label(i,0,first[i],wcf_title));
}
int per = second.length/(first.length-pos);
for (int i = first.length - pos; i >0; i--) {
sheet.mergeCells((i-1)*per+pos, 0, i*per+pos-1, 0); //合并单元格
}
for(int i=0;i<first.length-pos;i++){
sheet.addCell(new Label(pos+i*per,0,first[i+pos],wcf_title));
}
for(int i=0;i<second.length;i++){
sheet.addCell(new Label(pos+i,1,second[i],wcf_title));
}
break;
default:
break;
}
}
catch (Exception e) {
String sErrorStr = e.toString();
System.out.println("在输出到EXCEL的过程中出现错误,错误原因:" + e.toString());
}
return returnValue;
}
duoshanx 2003-07-17
  • 打赏
  • 举报
回复
求助:怎样在jsp文件里将表格显示为excel文件格式?急!在线等~~~~~~
ukyer 2003-06-11
  • 打赏
  • 举报
回复
20分?
fayar 2003-06-11
  • 打赏
  • 举报
回复
有人吗???
fayar 2003-06-11
  • 打赏
  • 举报
回复
有人能帮助我吗?
fayar 2003-06-11
  • 打赏
  • 举报
回复
什么啊?楼上的不知道就别耽误我时间

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧