热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

请教如何在jsp代码中实现将查询结果写入客户端的excel

网上代码看了一堆感觉有点糊涂在这里请教高手如果利用jxl实现希望给个清晰明了的源代码谢谢啊不利用javabean的调用直接在jsp代码中实现客户端用户给该excel文件命名
网上代码看了一堆 感觉有点糊涂
在这里请教高手 如果利用jxl实现 希望给个清晰明了的源代码 谢谢啊
不利用javabean的调用 直接在jsp代码中实现 客户端用户给该excel文件命名

10 个解决方案

#1


帮顶了,我也想知道哈

#2


...不可能在客户端实现的,在服务端实现,然后传达室到客户端,

因为到了客户端, 已经不关 java 的事了

#3


JXL的找不到了,我这里有POI的
要不先将就看一下
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(new File(request.getRealPath("")+"/Template/Model.xls"))); 
workbook=new HSSFWorkbook(fs);

List vwPrintList=(List)request.getAttribute("vwPrintList");
HSSFSheet sheet = workbook.getSheet("belongingsPrint");

// 0.4相当于1厘米,顺序为左右上下页边距
sheet.setMargin((short)0,1.2);
sheet.setMargin((short)1,0.4);
sheet.setMargin((short)2,0.8);
sheet.setMargin((short)3,0.8);

//true:横向 false:纵向

sheet.getPrintSetup().setLandscape(false);

Iterator vwPrintIt=vwPrintList.listIterator();
response.setContentType(getContentType());

HSSFFont fOnt=workbook.createFont();
font.setFontHeightInPoints((short)10);
//设置单元格格式

HSSFCellStyle cellStyle = workbook.createCellStyle();
// cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);   
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);   
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);   
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);   
//设置自动换行
cellStyle.setFont(font);
cellStyle.setWrapText(true);

        HSSFCell cell = null;
HSSFRow sheetRow = sheet.createRow(0);
HSSFFooter footer=sheet.getFooter();

int totalPage=0;
int lsize=vwPrintList.size();
if(lsize%27==0)
{
totalPage=lsize/27;
}else
{
totalPage=lsize/27+1;
}
String[] title=new String[]{"年月日","登录号","书名","作者","出版社","出版日期","页卷数","来源","册数","价格","索取号","备注"};

for(int i=0;i sheet.setColumnWidth((short)(0),(short)(12*150) ); //日期
sheet.setColumnWidth((short)(1),(short)(13*150) ); //登陆号
sheet.setColumnWidth((short)(2),(short)(62*150) ); //书名
sheet.setColumnWidth((short)(3),(short)(36*150) ); //作者
sheet.setColumnWidth((short)(4),(short)(40*150) ); //出版社
sheet.setColumnWidth((short)(5),(short)(13*150) ); //出版日期
sheet.setColumnWidth((short)(6),(short)(18*150) ); //页卷数
sheet.setColumnWidth((short)(7),(short)(7*150) ); //来源
sheet.setColumnWidth((short)(8),(short)(7*150) ); //册数
sheet.setColumnWidth((short)(9),(short)(10*150) ); //价格
sheet.setColumnWidth((short)(10),(short)(28*150) ); //索书号

sheet.setColumnWidth((short)(11),(short)(8*150) ); //备注
if(i%27==0)
{
sheetRow=sheet.createRow((short)i);
for(short j=0;j<12;j++){
sheetRow.setHeight((short)(480));
cell=sheetRow.createCell((j));
cell.setCellStyle(cellStyle);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(title[j]);
        }
}else{
sheetRow = sheet.createRow((short)(i));
sheetRow.setHeight((short)(480));
VwPrint vwPrint=(VwPrint)vwPrintIt.next();

cell=sheetRow.createCell((short)0);
cell.setCellStyle(cellStyle);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("");

cell=sheetRow.createCell((short)1);
cell.setCellStyle(cellStyle);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(vwPrint.getEntryNo());

cell=sheetRow.createCell((short)2);
cell.setCellStyle(cellStyle);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(vwPrint.getBookname());

cell=sheetRow.createCell((short)3);
cell.setCellStyle(cellStyle);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(vwPrint.getAuthor().trim(+" "+vwPrint.getOtherAuthor());

cell=sheetRow.createCell((short)4);
cell.setCellStyle(cellStyle);;
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(vwPrint.getPublishAddress().trim()+":"+vwPrint.getPublisher());

cell=sheetRow.createCell((short)5);
cell.setCellStyle(cellStyle);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(vwPrint.getPublishDate());

cell=sheetRow.createCell((short)6);
cell.setCellStyle(cellStyle);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(vwPrint.getPageNum().trim()+vwPrint.getBookSize());

cell=sheetRow.createCell((short)7);
cell.setCellStyle(cellStyle);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("");

cell=sheetRow.createCell((short)8);
cell.setCellStyle(cellStyle);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(vwPrint.getCopyNum());

cell=sheetRow.createCell((short)9);
cell.setCellStyle(cellStyle);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(vwPrint.getPrice());

cell=sheetRow.createCell((short)10);
cell.setCellStyle(cellStyle);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(vwPrint.getIndexNo());

cell=sheetRow.createCell((short)11);
cell.setCellStyle(cellStyle);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("");
}

}
ServletOutputStream out = response.getOutputStream();
workbook.write(out);
out.flush();

#4


直接在jsp代码中实现

建议最好还是用JavaBean与JSP分开,代码多了,JSP页面就会显得很臃肿

#5


把查询的结果,显示在jsp页面中,点击导出excel按钮,执行下面的js方法!

function saveCode()   //导出excel
{  
       var winname = window.open('', '_blank', 'top=10000');  
       //var strHTML = document.all.show.innerHTML;  
       var strHTML = document.getElementById("show").innerHTML;
       winname.document.open('text/html', 'replace');  
       winname.document.writeln(strHTML);  
       winname.document.execCommand('saveas','','excel.xls');  
       winname.close();  
 }

show 是DIV的ID, div中是要导出的数据.

#6


不用那么麻烦吧


这样就可以了 

<%@ page cOntentType="application/vnd.ms-excel;charset=UTF-8" %>
<%@ page  import="com.feiji.treemodel.*,com.feiji.render.*,java.util.*,com.feiji.dto.*;"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/custom-page.tld" prefix="page" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>


xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40">





  
    



  
  
  
    
   
     
        
     报表统计人员:  
         统计时间:<% java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat ("yyyy-MM-dd HH:mm"); out.print(sdf.format(new Date())); %> 
            
            
       
       
      
         
         
        
        
      
 
      
       
        
        
           
         序列
        
         
           课程名称
        
         
         登记数

        
         
        
             
        
         
        
      
         
        
           
         
          <%=index.intValue()+1%>
         
           
         
              对应你自己的要循环字段      
  
              这里也同上      
         

         
         
         
        
       
       
       
        
           
         
     
        
       
<%--       共有记录<%=rows %>条--%>
                      
      
    
  
        
         
        
   
    
    

      
    
  

#7


先在服务端上生成,然后用户操作保存到客户端。

#8


学习

#9


支持6楼的。。。
这个方法好

#10



function Button1_onclick() {
var oXL = new ActiveXObject("Excel.Application"); 
var oWB = oXL.Workbooks.Add(); 
var oSheet = oWB.ActiveSheet; 
var sel=document.body.createTextRange();
sel.moveToElementText(GridView1);
sel.select();
sel.execCommand("Copy");
oSheet.Paste();
oXL.Visible = true;
}
function Button2_onclick() {
//创建Word应用程序对象
var oWD = new ActiveXObject("Word.Application");
//向Word应用程序对象中添加一个文档对象,并取出其中的Range(0)
var oRange =oWD.documents.add().Range(0,0);
//根据HTML页面创建TextRange对象,以便定位到要打印的元素中
var sel = document.body.createTextRange();
//定位到TextRage对象中要打印的元素上,GridView1是要打印的元素的ID
sel.moveToElementText(GridView1);
//选中GridView1元素的所有HTML内容
sel.select();
//将选中的内容复制到剪切板上
sel.execCommand("Copy");
//粘贴到Word文档对象中去
oRange.Paste();
//显示Word程序和文档内容
oWD.Application.Visible = true;
//调用Word的打印程序
//oWD.application.printout();
//关闭word文档对象,参数0代表不保存文档
//oWD.application.activedocument.close(0);
//退出word程序
//oWD.application.quit();
}


第一个是导出到excel,第二个是导出到word,在jsp中触发下酒可以了。但是不知道你的浏览器能用ActiveX,否则要设置下

推荐阅读
author-avatar
壹舊雲A
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有