热门标签 | 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,否则要设置下

推荐阅读
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文探讨了在不使用服务器控件的情况下,如何通过多种方法获取并修改页面中的HTML元素值。除了常见的AJAX方式,还介绍了其他可行的技术方案。 ... [详细]
  • 本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
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社区 版权所有