`
zhangyongjuan
  • 浏览: 8367 次
  • 性别: Icon_minigender_2
  • 来自: 济南
社区版块
存档分类
最新评论

jxl操作excel文件---不使用模板

    博客分类:
  • java
 
阅读更多
<%@ page contentType="text/html;charset=UTF8" language="java" %>
<%@ include file="/commons/taglibs.jsp" %>
<%@ page errorPage="/jsp/errorpage.jsp"%>
<%@ page import = "hfmpBean.util.*"%>
<%@ page import = "hfmpBean.data.*"%>
<%@ page import = "java.util.*"%>
<%@ page session="false" %>


<%@ page import="jxl.Workbook" %>
<%@ page import="jxl.write.WritableCellFormat" %>
<%@ page import="jxl.write.WritableSheet" %>
<%@ page import="jxl.write.WritableWorkbook" %>
<%@ page import="jxl.write.WriteException" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="com.join.utils.*"%>
<%@ page import="java.io.OutputStream"%>
<%@ page import="java.io.File"%>


<jsp:useBean id="getData" class="hfmpBean.data.R_psnInfo" scope="page"/>
<jsp:useBean id="fileData" class="hfmpBean.data.R_psnInfoData" scope="page"/>

<jsp:useBean id="getBldData" class="hfmpBean.data.R_bldInfo" scope="page"/>
<jsp:useBean id="fileBldData" class="hfmpBean.data.R_bldInfoData" scope="page"/>

<html>
<head>
<title>无标题文档</title>


<style>
.xlsText{mso-number-format:"\@";}   
</style>
</head>
<%
String regionNo   = Convert.convertNull(request.getParameter("regionNo"));
String regionNameTemp = Convert.convertNull(request.getParameter("regionName"));
String regionName = Convert.convertGBK(request.getParameter("regionName"));
String bldNo      = Convert.convertNull(request.getParameter("bldNo"));
String bldName    = Convert.convertGBK(request.getParameter("bldName"));
String bldNameTemp = Convert.convertNull(request.getParameter("bldName"));
String returnback = Convert.convertNull(request.getParameter("returnback"));

String houseAttr ="";
String houseUse ="";
String struArea = "0.0";//建筑面积
String mainArea = "0.0";//主体面积
String annexeArea = "0.0";//附属面积
String houseNo = "";//房屋编号(15位):[2]区县编号+[6]自然幢+[2]单元+[2]楼层+[3]户
String houseSite = "";
    String firstMode = "";//初缴模式
String accNo = "";
String name = "";
String zoneCode = "";
String bankCode = "";
String agentNoName = "";
String houseAttrName = "";
String houseUseName = "";
String firstModeName = "";

getBldData = fileBldData.getR_bldInfo(" a.bldNo='"+bldNo+"'");
zoneCode = getBldData.getZoneName();
bankCode = getBldData.getBankName();
agentNoName = getBldData.getAgentName();

int startBld = Code.getHouseNO_SQL(0)[0];
int endBld  = Code.getHouseNO_SQL(0)[1];
String sqlStr = "  substr(houseNo,"+startBld+","+endBld+")='"+bldNo+"' and a.state='9' order by houseNo";
ArrayList rsDatas = fileData.getR_psnInfos(sqlStr);
int num = 0;//序号


    String subRegionName=Convert.convertNull(getBldData.getSubRegionName());
    String titleName = regionName +" "+subRegionName+" "+bldName;
%>
<%
  //response.setHeader("Content-disposition","inline; filename="+regionNameTemp+"-"+bldNameTemp+".xls");
%>

<%



    String excelFile = request.getSession().getServletContext()
.getRealPath("/templates/export_psninfo.xls");
// List result = PlayService.xlsMembers();//一个简单的方法,列出Member类的所有实例

// 设置资源头信息
  
    out.clearBuffer();
    out=pageContext.pushBody();
response.reset();
    //总是会报错,getOutputStream 已经
   
    response.setContentType("application/vnd.ms-excel");
    response.setHeader("Content-Disposition", "filename="+regionNameTemp+"-"+bldNameTemp+".xls");//attachment
// WritableWorkbook是JexcelApi的一个类。
// 以下可以理解为创建一个excel文件,然后在excel里面创建一个表
   OutputStream os = response.getOutputStream();//取得输出流
   WritableWorkbook workbook = Workbook.createWorkbook(os);
   WritableSheet sheet = workbook.createSheet("First Sheet", 0);
   
     //   Workbook wb = Workbook.getWorkbook(new File(excelFile));
    // 第二步:通过模板得到一个可写的Workbook:第一个参数是一个输出流对象,第二个参数代表了要读取的模板
   // File targetFile = new File("D:/test1.xls");
    //WritableWorkbook workbook = Workbook.createWorkbook(targetFile, wb);
    // 第三步:选择模板中名称为StateResult的Sheet:
    //WritableSheet sheet = workbook.getSheet(1);
    // 第四步:选择单元格,写入动态值,根据单元格的不同类型转换成相应类型的单元格:
   
   
// 组织excel文件的内容

    jxl.write.Label label = null;
  
    SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd");
//设置日期格式
    WritableCellFormat cellFormat1 = new WritableCellFormat();
    cellFormat1.setLocked(false);
//设置单元格锁定

     WritableCellFormat cellFormat = new WritableCellFormat();
     cellFormat.setLocked(true);
    //设置单元格未锁定

    int excelCol = 0;
    int row = 2;
    try {
   
    //生成第一行的信息
        label = new jxl.write.Label(0, 0, "注:<b>业主类别:</b>1.自然人;2.法人  证件类别: 1.身份证;2.军官证;3.护照;4.法人代表证 ,99.其它  日期格式: 为YYYY-MM-RR(如:2007-1-1)   请填入对应的数字",format2);
        sheet.addCell(label);

     sheet.mergeCells(0,0,20,0); //将第一行合并


        //生产第二行的信息
        label = new jxl.write.Label(4,1, regionName+bldName,format2);
        sheet.addCell(label);
        sheet.mergeCells(4,1,5,1);
        label = new jxl.write.Label(6, 1, "业主账户",format2);
        sheet.addCell(label);
        label = new jxl.write.Label(7, 1, "明细表",format2);
        sheet.addCell(label);
   
  
        //生成第三行的信息,
        label = new jxl.write.Label(excelCol++, row, "序号");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "账号");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "房屋位置");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "主体面积");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "附属面积");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "业主姓名");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "业主类别");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "证件类别");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "证件号码");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "联系电话");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "房屋售价");
        sheet.addCell(label);
       
        label = new jxl.write.Label(excelCol++, row, "购房日期");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "应缴维修金");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "收缴日期");
        sheet.addCell(label);
      
        jxl.write.DateTime dateTime;
        jxl.write.DateFormat customDateFormat = new jxl.write.DateFormat("yyyy-MM-dd");//时间格式
        WritableCellFormat dateFormat = new WritableCellFormat(customDateFormat);
      
   //循环生成  excel表的数据
        int j=3;
        for(int i=0;i<rsDatas.size();i++){
            R_psnInfo rr = (R_psnInfo) rsDatas.get(i);
            excelCol = 0;
            row =j;
          
        
        
            label = new jxl.write.Label(excelCol++, row, String.valueOf(i),cellFormat);
            sheet.addCell(label);
          
            label = new jxl.write.Label(excelCol++, row,rr.getAccNo(),cellFormat);
            sheet.addCell(label);
           // label.getString().se
            label = new jxl.write.Label(excelCol++, row, rr.getHouseSite(),cellFormat1);
            sheet.addCell(label);
            label = new jxl.write.Label(excelCol++, row, rr.getStruArea(),cellFormat1);
            sheet.addCell(label);
            label = new jxl.write.Label(excelCol++, row, rr.getAnnexeArea(),cellFormat1);
            sheet.addCell(label);
             label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
            sheet.addCell(label);
             label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
            sheet.addCell(label);
             label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
            sheet.addCell(label);
             label = new jxl.write.Label(excelCol++, row,"",cellFormat1);
            sheet.addCell(label);
             label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
            sheet.addCell(label);
            label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
            sheet.addCell(label);
             label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
            sheet.addCell(label);
            label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
            sheet.addCell(label);
             label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
            sheet.addCell(label);
             label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
            sheet.addCell(label);
           
            j++;
            //label = new jxl.write.Label(excelCol, row, formatDate.format(rr.getCreateTime()));
            //sheet.addCell(label);
            //
        }
        sheet.setColumnView(1,2);
        sheet.setColumnView(1,20);
        sheet.setColumnView(2,30);
        sheet.setColumnView(3,10);
        sheet.setColumnView(4,10);
        sheet.setColumnView(5,20);
        sheet.setColumnView(6,10);
        sheet.setColumnView(7,10);
        sheet.setColumnView(8,20);
        sheet.setColumnView(9,20);
        sheet.setColumnView(10,12);
        sheet.setColumnView(11,12);
        sheet.setColumnView(12,12);
        sheet.setColumnView(13,12);
        sheet.setColumnView(14,15);
       sheet.getSettings().setProtected(true); //设置xls的保护,单元格为只读的
        sheet.getSettings().setPassword("123"); //设置xls的密码
      

    } catch (Exception e) {
        e.printStackTrace();
    } finally{
//      生成excel文件
        workbook.write();
        workbook.close();
      os.close();
    }

%>

</html>

分享到:
评论

相关推荐

    JXL使用模板通过el表达式生成excel文件

    JXL库因其简单易用的API和对Excel文件的良好支持,而在Java开发中被广泛使用。 **通过EL表达式生成Excel** EL(Expression Language)表达式是JavaServer Faces(JSF)中的一种标准表达式语言,用于在Java组件和...

    使用jxl解析excel(.xls)固定模板(智联简历为例)

    3. **解析保存**:使用JXL库读取并解析Excel文件。以下是一个简单的示例代码片段,展示如何打开文件并遍历工作表: ```java Workbook workbook = Workbook.getWorkbook(new File("path_to_your_excel_file")); ...

    jxl模版生成excel

    "jxl模版生成excel" 指的是使用JExcelAPI(简称jxl)这个Java库来创建基于模板的Excel文件。JExcelAPI是一个开源项目,允许程序开发者读写Microsoft Excel文件,它支持从Java数据结构直接导出到Excel格式,同时也可...

    通过JXL使用模板导出EXCEL

    虽然不支持最新的.xlsx格式(这需要使用如Apache POI等其他库),但对于处理旧版Excel文件,JXL是一个简单且实用的选择。 要通过JXL使用模板导出Excel,你需要遵循以下步骤: 1. **准备模板文件**:首先,创建一个...

    jxl 读取Excel模板并写入数据通用工具类

    此外,JXL库不支持较新版本的Excel文件格式(如.xlsx),对于新格式的Excel文件,推荐使用Apache POI库进行处理。 总结,通过使用JXL库,我们可以创建一个通用的工具类来处理Excel模板和数据的读写。这个工具类能够...

    JXL根据模板文件,生成新文件,填充excel

    标题 "JXL根据模板文件,生成新文件,填充excel" 提到的是使用JXL库来创建Excel文件并根据模板填充数据。JXL是一个Java库,它允许开发人员读写Microsoft Excel文件,为处理电子表格数据提供了便利。在这个场景中,...

    Java通过POI和JXL给Excel动态添加水印

    - **读取Excel文件**:使用JXL或POI库加载Excel文件。 - **创建水印图像**:根据`Model`中的数据动态生成水印图像。 - **将水印图像添加到Excel页面上**:使用POI提供的API来实现这一功能。 #### 示例代码框架 ```...

    jxl导出excel支持模板和非模板

    利用JXL技术支持模板和非模板的表格导出

    jxl的API ->Excel文件操作

    在实际开发中,结合jxl提供的API,我们可以实现复杂的Excel文件操作,如数据导入导出、报表生成、模板填充等。同时,由于jxl库是开源的,开发者还可以查看源码,了解其实现原理,甚至对其进行扩展和定制,以满足特定...

    利用Jxl生成excel文件

    总的来说,"利用Jxl生成excel文件"这个主题涵盖了Java环境下使用Jxl库进行Excel操作的基本知识,包括创建工作簿、工作表,添加数据,设置样式,以及读写文件的流程。对于需要在Java应用程序中生成Excel报告或导出...

    使用jxl包向excle模板中写入数据

    总结,使用`jxl`库可以方便地实现Java对Excel文件的读写操作。在向Excel模板中写入数据时,通过先复制模板再进行写入,可以确保原始模板不受影响,从而保持模板的完整性。通过熟练掌握`jxl`库的使用,开发者可以高效...

    jxl-2.6.10.jar包

    总之,jxl-2.6.10.jar作为一款强大的Excel操作工具,为Java开发者提供了便利的接口,使得在Java程序中处理Excel文件变得简单易行。熟练掌握jxl库的使用,无疑将提升你在数据处理领域的编程能力。

    Struts2+JXL 下载 Excel 文档

    JXL则是一个Java库,专门用来处理Excel文件,无论是读取还是写入,它都提供了方便的API。 在"Struts2+JXL 下载 Excel 文档"的场景中,开发者通常会创建一个Action,这个Action负责生成Excel文档并提供下载。用户...

    jxl 导出 excel

    在Java编程环境中,JXL库是一个非常流行...总之,使用JXL库在Java中导出Excel文件是一项常见的任务,尤其在数据分析和报表生成场景下。通过熟悉JXL的API,你可以轻松地定制化Excel文件的格式和内容,满足各种业务需求。

    使用Java的jxl方式导出到Excel

    jxl库是一个广泛使用的开源库,它允许开发者用Java读取、写入和修改Excel文件。本篇文章将深入探讨如何使用jxl库来实现数据从数据库导出到Excel的过程。 首先,要使用jxl库,你需要将其添加到项目的类路径中。如果...

    利用java操作Excel文件

    Java操作Excel文件是指使用Java语言来读取和写入Excel文件的内容。下面是关于Java操作Excel文件的知识点总结: 一、读取Excel文件内容 在Java中,读取Excel文件内容可以使用jxl.jar这个开源的库。首先需要下载jxl....

    利用JAVA操作EXCEL文件.pdf

    ### 利用JAVA操作EXCEL文件的关键知识点 #### 一、JAVA EXCEL API 简介 - **项目背景**:随着Web应用的发展,越来越多的应用场景需要通过Web端操作Excel文件,而传统的CSV文件虽然可以被Excel打开,但无法实现对...

    jxl-report.jar 和 freemarker-util-0.0.1.jar

    通过使用jxl-report,开发者可以创建模板化的Excel文件,其中包含预定义的格式和结构,然后用程序动态填充数据。 接下来,我们讨论`freemarker-util-0.0.1-SNAPSHOT.jar`。FreeMarker是一个强大的模板引擎,广泛...

    java 创建EXCEL文件,并向EXCEL中写入数据

    `jxl.jar`包含了一系列的类和接口,用于处理Excel文件的各种操作。在你的项目中,你需要将这个JAR文件添加到类路径中,以便可以使用它的功能。这可以通过IDE的依赖管理器(如Maven或Gradle)或者手动复制到项目的`...

    jxl-2.6.12包 源码 及 javadoc

    jxl库是Java平台上的一个强大工具,专用于处理Excel文件。这个名为"jxl-2.6.12包"的压缩文件包含了jxl库的核心组件,使得开发者能够方便地在Java应用中读取、写入以及操作Excel数据。本文将详细介绍jxl-2.6.12包中的...

Global site tag (gtag.js) - Google Analytics